2
0
Fork 0
mirror of https://github.com/MartinThoma/LaTeX-examples.git synced 2025-04-25 22:38:04 +02:00
This commit is contained in:
Martin Thoma 2014-03-16 15:49:25 +01:00
parent c2db4122e7
commit deea4832fe
7 changed files with 104 additions and 5 deletions

View file

@ -0,0 +1,20 @@
#include <stdio.h>
#include <mpi.h>
int main (int argc, char** args) {
int size, i;
int myrank;
MPI_Init(&argc, &args);
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_rank(MPI_COMM_WORLD, &myrank);
for (i=0; i<size; i++) {
MPI_Barrier(MPI_COMM_WORLD);
if (i == myrank) {
printf("Hello World, I have rank %d out of %d.\n",
myrank, size);
}
}
MPI_Finalize();
return 0;
}

View file

@ -0,0 +1,18 @@
#include "mpi.h"
int msglen, again=1;
void *buf;
MPI_Datatype datatype
MPI_Comm comm;
MPI_Status status;
...
while (again) {
MPI_Probe(ROOT, MPI_ANY_TAG, comm, &status);
MPI_Get_count(&status, datatype, &msglen);
buf=malloc(msglen*sizeof(int));
MPI_Recv(buf, msglen, datatype, status.MPI_SOURCE,
status.MPI_TAG, comm, &status);
...
}
...

View file

@ -0,0 +1,3 @@
int MPI_Recv(void *buf, int count,
MPI_Datatype datatype, int source, int tag,
MPI_Comm comm, MPI_Status *status)

View file

@ -0,0 +1,18 @@
#include "mpi.h"
...
int signal, i, numprogs, me;
MPI_Status stat;
MPI_Comm_rank(MPI_COMM_WORLD, &me);
MPI_Comm_size(MPI_COMM_WORLD,
&numprocs);
if (me==ROOT) {
...
for (i=1; i<numprocs; i++) {
MPI_Send(&signal, 1, MPI_INT, i, 0, MPI_COMM_WORLD);
}
...
else {
MPI_Recv(&sig, 1, MPI_INT, ROOT, MPI_ANY_TAG,
MPI_COMM_WORLD, &stat);
...
}

View file

@ -0,0 +1,3 @@
int MPI_Send(void *buf, int count,
MPI_Datatype datatype, int dest,
int tag, MPI_Comm comm)