我写下了一个MPI / pthread混合代码,我在集群上执行它。具体来说,我使用mpicc -lpthread编译它,并使用mpirun -np 2 -bynode在不同节点(总共6个节点,每个节点8个核心)上启动2个MPI进程,然后在每个节点上创建8个线程。但是,线程不是并行执行的,而是按顺序执行的?
我的部分代码:
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &numtasks);
MPI_Comm_rank(MPI_COMM_WORLD, &taskid);
MPI_Get_processor_name(hostname, &len);
// more code between these..
pthread_create(&thread_id, NULL, &sort, (void*) arrays[0]);
pthread_create(&thread_id2, NULL, &sort, (void*) arrays[1]);
答案 0 :(得分:0)
终于解决了问题,我刚刚使用了最新版本的mpicc,现在一切都好了