openmpiで並列化。
一番最初に書くべきプログラム。
自分のランクを出力する
プログラム。
>
1)コンパイル
mpicc test.c -o test.out
2)実行
3ノード並列で実行
mpirun -np 3 test.out
5ノード並列で実行
mpirun -np 5 test.out
Nノード並列で実行
mpirun -np N test.out<
プログラム:test.c
#include <stdio.h> /* printf and BUFSIZ defined there */ #include <stdlib.h> /* exit defined there */ #include <mpi.h> /* all MPI-2 functions defined there */ int main(argc, argv) int argc; char *argv[]; { int rank, size, length; char name[BUFSIZ]; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Get_processor_name(name, &length); /*ここにプログラムを書く*/ /*すべてのノードで実行される*/ printf("%s: hello world from process %d of %d\n", name, rank, size); MPI_Finalize(); exit(0); }