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. He hecho las cosas obvias y traducido la cabecera de MPI a continuación, D. traduje a test program from Wikipedia a D. I recopilados con el siguiente comando:MPI y D: Opciones del vinculador
dmd test.d -L-lmpistubs
funciona cuando acabo de correr ./test
, y las impresiones:
0: We have 1 processors
Sin embargo, cuando corro con mpiexec -n 8 test
, se 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: He encontrado 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: How do to it right.
usaste extern (C) cuando estabas traduciendo? –
¿Ha intentado ejecutar 'strace -f mpicc test.c' o algo así, para buscar las opciones del enlazador? Supongo que está llamando 'ld' o algo así como un proceso secundario. – gmfawcett