run mpirun linker parallel-processing d mpi mpiexec

linker - mpirun - MPI y D: opciones de enlace



mpi run np (1)

mpicc es el nombre común de diferentes scripts e incluso programas. Algunos de ellos tienen opciones como -echo , -show , -compile-info , -link-info o -showme o la opción de entorno para mostrar lo que realmente se llama.

Trate de verificar qué es realmente con

file -k `which mpicc`

Si es un script, puede escribirse en sh, bash, perl, python. Puedes verlo fácilmente y encontrar la opción correcta. Si es un programa, intente ejecutar

strings `which mpicc`

A veces, las strings pueden extraer nombres de opciones y / o variables de entorno que controlan el trabajo del script.

Además, la mayoría de mpicc verifica la variable de env CC para obtener el nombre del compilador. Puede escribir un script o un programa que simplemente imprima sus argumentos y establezca CC env en este programa.

Estoy tratando de usar MPI con el lenguaje de programación D. D es totalmente compatible con C ABI y puede enlazar y llamar a cualquier código C. Hice lo obvio y traduje el encabezado MPI a D. Luego traduje un programa de prueba de Wikipedia a D. Lo compilé con el siguiente comando:

dmd test.d -L-lmpistubs

Funciona cuando solo ejecuto ./test , e ./test :

0: We have 1 processors

Sin embargo, cuando corro con la mpiexec -n 8 test , no imprime nada. Tengo entendido que los ejecutables de MPI requieren un montón de opciones de enlace extrañas, por lo que existen herramientas como mpicc para automatizar el proceso. Sin embargo, esto no me ayuda si estoy tratando de usar MPI en D. Supongo que es porque no estoy usando las opciones correctas del enlazador. ¿Puede alguien decirme qué hace mpicc y cómo puedo hacer que DMD haga lo mismo?

Editar: Encontré la respuesta usando mpicc -showme . Esto muestra qué comandos mpicc reenvía a gcc . Sin embargo, también me di cuenta de que hice mal la traducción del archivo de encabezado. Siguiente pregunta: ¿Cómo hacerlo bien?