I am using the intel MIC to run sample MPI programs currently.
The program is a simple hello world program.
#include <stdio.h>
#include <mpi.h>
int main (argc, argv)
int argc;
char *argv[];
{
int rank, size,len;
char name[MPI_MAX_PROCESSOR_NAME];
MPI_Init (&argc, &argv); /* starts MPI */
MPI_Comm_rank (MPI_COMM_WORLD, &rank); /* get current process id */
MPI_Comm_size (MPI_COMM_WORLD, &size); /* get number of processes */
MPI_Get_processor_name(name,&len);
printf( "Hello world from process %d of %d with name as %s\n", rank, size,name );
MPI_Finalize();
return 0;
}
i compiled the program using hostfile option. mpirun -f machinefile -n 4 ./a.out
The contents of the machinefile is
cat machinefile
node1-mic0
node1-mic1
And the output i get is
Hello world from process 1 of 4 with name as node1-mic0
Hello world from process 2 of 4 with name as node1-mic0
Hello world from process 3 of 4 with name as node1-mic0
Hello world from process 0 of 4 with name as node1-mic0
However when i force the the program to split across the Intel MIC's, using the -ppn option, i encountered the following problem.
mpirun -f machinefile -n 4 -ppn 2 ./a.out
=====================================================================================
= BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
= EXIT CODE: 11
= CLEANING UP REMAINING PROCESSES
= YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
=====================================================================================
APPLICATION TERMINATED WITH THE EXIT STRING: Segmentation fault (signal 11)