Este es el comando mpirun.lam que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
mpirun: ejecuta programas MPI en nodos LAM.
SINOPSIS
mpirun [-fhvO] [-c # | -np #] [-D | -wd dir] [-ger | -nger] [-sigs | -nsigs] [-ssi clave
valor] [-nw | -w] [-nx] [-pty | -npty] [-s nodo] [-t | -toff | -ton] [-tv] [-x
VAR1 [= VALOR1] [, VAR2 [= VALOR2], ...]] [[-p prefix_str] [-sa | -sf]] [donde] programa [-
argumentos]
Nota: Aunque cada uno es individualmente opcional, al menos uno de donde, -notario públicoo -c debe ser
especificado en el formulario anterior (es decir, cuando no se utiliza un esquema).
mpirun [-fhvO] [-D | -wd dir] [-ger | -nger] [-sigs | -nsigs] [-ssi valor de clave] [-nw | -w]
[-nx] [-pty | -npty] [-t | -toff | -ton] [-tv] [-x
VAR1 [= VALUE1] [, VAR2 [= VALUE2], ...]] esquema
Nota: El -c2c y -lamd las opciones ahora son obsoletas. Usar -ssi en lugar de. Ver el "SSI"
sección, a continuación.
RÁPIDO RESUMEN
Si simplemente está buscando cómo ejecutar una aplicación MPI, probablemente desee utilizar la
siguiente línea de comando:
% mpirun C mi_mpi_aplicación
Esto ejecutará una copia de mi_mpi_aplicacion en cada CPU del universo LAM actual.
Alternativamente, se puede utilizar "N" en lugar de "C", lo que indica que una copia de
mi_mpi_aplicacion debe ejecutarse en todos los nodos (a diferencia de la CPU) en el LAM actual
universo. Finalmente:
% mpirun -np 4 mi_mpi_aplicación
se puede utilizar para decirle a LAM que ejecute explícitamente cuatro copias de mi_mpi_aplicacion, programando en
una moda round-robin por CPU en el universo LAM. Consulte el resto de esta página para obtener más información.
detalles, en particular la sección "Nomenclatura de ubicación".
OPCIONES
Hay dos formas de mpirún comando: uno para programas (es decir, estilo SPMD
aplicaciones), y uno para esquemas de aplicación (ver esquema de aplicaciones(5)). Ambas formas de mpirún
utilice las siguientes opciones de forma predeterminada: desconocido -w. Estos pueden ser anulados por su
opciones de contrapartida, que se describen a continuación.
Esta terapia, además mpirún enviará el nombre del directorio donde fue invocado en el local
nodo a cada uno de los nodos remotos e intente cambiar a ese directorio. Ver el
Sección "Directorio de trabajo actual", a continuación.
-c # Sinónimo de -notario público (vea abajo).
-D Utilice la ubicación del programa ejecutable como el directorio de trabajo actual para
Procesos. Se establecerá el directorio de trabajo actual de los procesos creados
antes de que se invoque el programa del usuario. Esta opción es mutuamente excluyente con
-wd.
-f No configure descriptores de archivos de E / S estándar; utilice los valores predeterminados.
-h Imprima información útil sobre este comando.
-ger Habilite el protocolo y el error de comunicación de GER (recursos de envolvente garantizados)
informes. Ver MPI(7) para obtener una descripción de GER. Esta opción es mutuamente
exclusivo con desconocido.
desconocido Desactive GER (recursos de envolvente garantizados). Esta opción es mutuamente excluyente
con -ger.
-insigs No tenga señales de captura de LAM en la aplicación del usuario. Este es el predeterminado y
es mutuamente excluyente con -sig.
-notario público # Ejecute tantas copias del programa en los nodos dados. Esta opción indica
que el archivo especificado es un programa ejecutable y no un esquema de aplicación.
Si no se especifican nodos, todos los nodos LAM se consideran para la programación; LAM lo hará
programar los programas de manera rotatoria, "envolviendo" (y
programar varias copias en un solo nodo) si es necesario.
-npty Deshabilite el soporte pseudo-tty. A menos que tenga problemas con pseudo-tty
soporte, probablemente no necesite esta opción. Mutuamente excluyentes con -pty.
-noroeste No espere a que se completen todos los procesos antes de salir mpirún. Esta opcion es
mutuamente excluyentes con -w.
-nx No exportar automáticamente el entorno LAM_MPI_ *, LAM_IMPI_ * o IMPI_ *
variables a los nodos remotos.
-O El multicomputador es homogéneo. No realice conversión de datos al pasar mensajes.
ESTA BANDERA AHORA ESTÁ OBSOLETA.
-pty Habilite la compatibilidad con pseudo-tty. Entre otras cosas, esta línea habilitada con búfer
salida (que es probablemente lo que desea). Este es el predeterminado. Mutuamente
exclusivo con -npty.
-s nodo Cargue el programa desde este nodo. Esta opción no es válida en la línea de comando.
si se especifica un esquema de aplicación.
-sig Tener señales de captura de LAM en el proceso del usuario. Esta opción es mutuamente excluyente
con -insigs.
-ssi clave propuesta de
Envíe argumentos a varios módulos SSI. Consulte la sección "SSI" a continuación.
-t, -tonelada Habilite la generación de seguimiento de ejecución para todos los procesos. La generación de trazas
proceda sin más acciones. Estas opciones son mutuamente excluyentes con
-petimetre.
-petimetre Habilite la generación de seguimiento de ejecución para todos los procesos. Generación de trazas para
el tráfico de paso de mensajes comenzará después de que los procesos llamen colectivamente
MPIL_Trace_on(2). Tenga en cuenta que la generación de trazas para tipos de datos y comunicadores
will proceder independientemente de si la generación de seguimiento está habilitada para mensajes o
no. Esta opción es mutuamente excluyente con -t y -tonelada.
-televisión Inicie procesos en TotalView Debugger.
-v Sea prolijo; informar sobre los pasos importantes a medida que se realizan.
-w Espere a que salgan todas las aplicaciones antes mpirún salidas
-wd dir Cambie al directorio dir antes de que se ejecute el programa del usuario. Tenga en cuenta que si
de la forma más -wd La opción aparece tanto en la línea de comandos como en el esquema de una aplicación,
el esquema tendrá prioridad sobre la línea de comandos. Esta opción es mutuamente
exclusivo con -D.
-x Exportar las variables de entorno especificadas a los nodos remotos antes de ejecutar
el programa. Se pueden especificar las variables de entorno existentes (consulte los Ejemplos
sección, a continuación), o nuevos nombres de variable especificados con los valores correspondientes. los
analizador para el -x la opción no es muy sofisticada; ni siquiera entiende
valores cotizados. Se aconseja a los usuarios que establezcan variables en el entorno y luego
use -x exportarlos (no definirlos).
-sa Muestra el estado de salida de todos los procesos MPI independientemente de si fallan o
ejecutar con éxito.
-sf Muestra el estado de salida de todos los procesos solo si uno de ellos falla.
-p cadena_prefijo
Prefija cada línea de estado de proceso mostrada por [-sa] y [-sf] por el
prefijo_str.
donde Un conjunto de identificadores de nodos y / o CPU que indican por dónde empezar. programa. Vea
anfitrión(5) para obtener una descripción de los identificadores de nodo y CPU. mpirún will
programar filas contiguas en MPI_COMM_MUNDO en el mismo nodo cuando los identificadores de CPU
son usados. Por ejemplo, si LAM se arrancó con un recuento de CPU de 4 en n0 y una CPU
cuenta de 2 en n1 y donde es C, los rangos del 0 al 3 se colocarán en n0, y
los rangos 4 y 5 se colocarán en n1.
args Pase estos argumentos en tiempo de ejecución a cada nuevo proceso. Estos deben ser siempre los
últimos argumentos para mpirún. Esta opción no es válida en la línea de comando si un
se especifica el esquema de aplicación.
DESCRIPCIÓN
Una invocación de mpirún inicia una aplicación MPI que se ejecuta en LAM. Si la aplicación
es simplemente SPMD, la aplicación se puede especificar en el mpirún línea de comando. Si el
La aplicación es MIMD, que comprende varios programas, se requiere un esquema de aplicación en un
archivo separado. Ver esquema de aplicaciones(5) para obtener una descripción de la sintaxis del esquema de la aplicación, pero
esencialmente contiene múltiples mpirún líneas de comando, menos el nombre del comando en sí. los
La capacidad de especificar diferentes opciones para diferentes instancias de un programa es otra
razón para utilizar un esquema de aplicación.
Ubicación Nomenclatura
Como se describió anteriormente, mpirún puede especificar ubicaciones arbitrarias en el universo LAM actual.
Las ubicaciones se pueden especificar por CPU o por nodo (indicado por el "dónde" en el SYNTAX
sección, arriba). Tenga en cuenta que LAM no vincula procesos a CPU, especificando una ubicación
"por CPU" es realmente un mecanismo conveniente para SMP que, en última instancia, se asigna a un
nodo específico.
Tenga en cuenta que LAM enumera efectivamente los rangos de MPI_COMM_WORLD de izquierda a derecha en el donde,
independientemente de la nomenclatura que se utilice. Esto puede ser importante porque el MPI típico
Los programas tienden a comunicarse más con sus vecinos inmediatos (es decir, myrank +/- X) que
vecinos lejanos. Cuando los vecinos terminan en el mismo nodo, los RPI de shmem se pueden utilizar para
comunicación en lugar de los RPI de la red, lo que puede resultar en un rendimiento MPI más rápido.
Al especificar ubicaciones por nodo, se lanzará una copia de un ejecutable por nodo especificado.
El uso de una "N" en mayúscula le dice a LAM que use todos los nodos disponibles que fueron lanzados (ver
arranque(1)). Los rangos de nodos específicos también se pueden especificar en la forma "nR [, R] *", donde
R especifica un número de nodo único o un rango válido de números de nodo en el rango de
[0, num_nodes). Por ejemplo:
mpirun N a.fuera
Ejecuta una copia del ejecutable. fuera en todos los nodos disponibles en el universo LAM.
El rango 0 de MPI_COMM_WORLD estará en n0, el rango 1 estará en n1, etc.
mpirun n0-3 a.fuera
Ejecuta una copia del ejecutable. fuera en los nodos 0 a 3. MPI_COMM_WORLD rango 0
estará en n0, el rango 1 estará en n1, etc.
mpirun n0-3,8-11,15 a.fuera
Ejecuta una copia del ejecutable. fuera en los nodos 0 a 3, 8 a 11 y 15.
Los rangos de MPI_COMM_WORLD se ordenarán de la siguiente manera: (0, n0), (1, n1), (2, n2), (3, n3),
(4, n8), (5, n9), (6, n10), (7, n11), (8, n15).
La especificación por CPU es el método preferido para iniciar trabajos MPI. La intención es que el
esquema de arranque usado con arranque(1) indicará cuántas CPU están disponibles en cada nodo,
y luego un solo, simple mpirún El comando se puede usar para ejecutar en todos ellos. Como
como se mencionó anteriormente, especificar las CPU en realidad no vincula procesos a las CPU, es solo una
mecanismo de conveniencia para el lanzamiento en SMP. De lo contrario, la notación por CPU es la misma
como la notación por nodo, excepto que se utilizan "C" y "c" en lugar de "N" y "n".
En el siguiente ejemplo, suponga que el universo LAM consta de cuatro SMP de 4 vías. Entonces
c0-3 están en n0, c4-7 están en n1, c8-11 están en n2 y 13-15 están en n3.
mpirun C a.fuera
Ejecuta una copia del ejecutable. fuera en todas las CPU disponibles en el universo LAM.
Este suele ser el método más simple (y preferido) de iniciar todos los trabajos de MPI (incluso
si se resuelve en un proceso por nodo). MPI_COMM_WORLD rangos 0-3 estarán en n0,
los rangos 4-7 estarán en n1, los rangos 8-11 estarán en n2 y los rangos 13-15 estarán en n3.
mpirun c0-3 a.fuera
Ejecuta una copia del ejecutable. fuera en CPU 0 a 3. Los cuatro rangos de
MPI_COMM_WORLD estará en MPI_COMM_WORLD.
mpirun c0-3,8-11,15 a.fuera
Ejecuta una copia del ejecutable. fuera en las CPU 0 a 3, 8 a 11 y 15.
Los rangos de MPI_COMM_WORLD 0-3 estarán en n0, 4-7 estarán en n2 y 8 estarán en n3.
La razón por la que se prefiere la nomenclatura por CPU a la nomenclatura por nodo es la mejor
mostrado a través del ejemplo. Considere intentar ejecutar el primer ejemplo de CPU (con el mismo
Mapeo MPI_COMM_WORLD) con la nomenclatura por nodo: ejecute una copia de fuera para cada
CPU disponible y maximice el número de vecinos locales para maximizar potencialmente el MPI
rendimiento. Una solución sería utilizar el siguiente comando:
mpirun n0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3 a.fuera
Este funciona, pero definitivamente es torpe de escribir. Por lo general, es más fácil usar el by-CPU
notación. Uno podría pensar que lo siguiente es equivalente:
mpirun N -np 16 a.fuera
Es no equivalente porque las asignaciones de rango MPI_COMM_WORLD serán asignadas por nodo
en lugar de por CPU. Por lo tanto, el rango 0 estará en n0, el rango 1 estará en n1, etc. Tenga en cuenta que el
siguiendo, sin embargo, is equivalente, porque LAM interpreta la falta de un where como "C":
mpirun -np 16 a.fuera
Sin embargo, una "C" puede resultar más conveniente, especialmente para los scripts de cola por lotes.
porque el número exacto de procesos puede variar entre los envíos de la cola. Desde el lote
El sistema determinará el número final de CPU disponibles, teniendo un script genérico que
dice efectivamente "ejecutar con todo lo que me diste" puede llevar a más portátiles / reutilizables
scripts.
Finalmente, debe tenerse en cuenta que especificar múltiples cláusulas where son perfectamente
aceptable. Como tal, la mezcla de la sintaxis por nodo y por CPU también es válida, aunque
normalmente no es útil. Por ejemplo:
mpirun CN a.out
Sin embargo, en algunos casos, puede resultar útil especificar varias cláusulas where. Considere un
aplicación paralela donde MPI_COMM_WORLD rango 0 será un "administrador" y por lo tanto consumirá
muy pocos ciclos de CPU porque generalmente está esperando a que regresen los procesos "de trabajo"
resultados. Por lo tanto, probablemente sea conveniente ejecutar un proceso de "trabajador" en todos los
CPU y ejecute un proceso adicional que será el "administrador":
mpirun c0 C programa gerente-trabajador
Applicación Esquema or Ejecutable ¿Programa?
Para distinguir las dos formas diferentes, mpirún busca en la línea de comando dónde o el
-c opción. Si no se especifica ninguno, se asume que el archivo nombrado en la línea de comando
ser un esquema de aplicación. Si se especifica uno o ambos, se asume que el archivo
para ser un programa ejecutable. Si donde y -c se especifican ambos, luego copias del
el programa se inicia en los nodos / CPU especificados de acuerdo con una programación LAM interna
política. Especificar un solo nodo obliga a LAM a ejecutar todas las copias del programa.
en un lugar. Si -c se da, pero no dónde, entonces todas las CPU disponibles en todos los nodos LAM son
usó. Si donde se da, pero no -c, luego se ejecuta una copia del programa en cada nodo.
Programa Fichajes
De forma predeterminada, LAM busca programas ejecutables en el nodo de destino donde un
se ejecutará la instanciación. Si el sistema de archivos no se comparte, los nodos de destino se
homogéneo, y el programa se recompila con frecuencia, puede ser conveniente tener LAM
transferir el programa desde un nodo de origen (normalmente el nodo local) a cada nodo de destino. los
-s La opción especifica este comportamiento e identifica el nodo de origen único.
Localización archivos
LAM busca un programa ejecutable buscando los directorios en la RUTA del usuario
variable de entorno según se define en los nodos de origen. Este comportamiento es consistente con
iniciando sesión en el nodo de origen y ejecutando el programa desde el shell. En nodos remotos,
los "." ruta es el directorio de inicio.
LAM busca un esquema de aplicación en tres directorios: el directorio local, el valor
de la variable de entorno LAMAPPLDIR y laminstalldir / boot, donde "laminstalldir" es
el directorio donde se instaló LAM / MPI.
Estándar I / O
LAM dirige la entrada estándar de UNIX a / dev / null en todos los nodos remotos. En el nodo local que
invocado mpirún, la entrada estándar se hereda de mpirún. El valor predeterminado es lo que solía ser
la opción -w para evitar conflictos de acceso al terminal.
LAM dirige la salida estándar de UNIX y el error al demonio LAM en todos los nodos remotos. JUSTICIA
envía todos los resultados / errores capturados al nodo que invocó mpirún y lo imprime en el
salida estándar / error de mpirún. Los procesos locales heredan la salida / error estándar de
mpirún y transferirlo directamente.
Por lo tanto, es posible redirigir la E / S estándar para aplicaciones LAM mediante el uso de
procedimiento de redirección de shell en mpirún.
% mpirun C mi_aplicación mi_entrada mi_salida
Tenga en cuenta que en este ejemplo only el nodo local (es decir, el nodo donde se invocó mpirun
from) recibirá la transmisión de my_input en stdin. El stdin en todos los demás nodos
estará vinculado a / dev / null. Sin embargo, la salida estándar de todos los nodos se recopilará en el
archivo my_output.
El -f La opción evita toda la configuración necesaria para admitir las E / S estándar descritas anteriormente.
Los procesos remotos se dirigen completamente a / dev / null y los procesos locales heredan el archivo
descriptores de arranque(1).
pseudo-tty SOPORTE
El -pty opción habilitada soporte pseudo-tty para la salida del proceso (también está habilitado por
defecto). Esto permite, entre otras cosas, una salida con búfer de línea desde nodos remotos
(que es probablemente lo que quieres). Esta opción se puede desactivar con el -npty switch.
Proceso Terminación / Signal Manejo
Durante la ejecución de una aplicación MPI, si algún rango muere de forma anormal (ya sea saliendo antes
invocando MPI_FINALIZAR, o morir como resultado de una señal), mpirún imprimirá un error
mensaje y elimine el resto de la aplicación MPI.
De forma predeterminada, LAM / MPI solo instala un controlador de señal para una señal en los programas de usuario
(SIGUSR2 por defecto, pero esto se puede anular cuando LAM está configurado y construido).
Por lo tanto, es seguro para los usuarios instalar sus propios manejadores de señales en programas LAM / MPI.
(LAM notifica casos de muerte por señal al examinar el estado de devolución del proceso proporcionado por el
sistema operativo).
Los manejadores de señales de usuario probablemente deberían evitar intentar limpiar el estado de MPI; LAM no
seguro para subprocesos ni para señales asíncronas. Por ejemplo, si ocurre una falla seg en MPI_ENVIAR
(tal vez porque se pasó un búfer defectuoso) y se invoca un manejador de señales de usuario, si esto
el controlador de usuario intenta invocar MPI_FINALIZAR, Pueden pasar cosas malas desde que LAM / MPI fue
ya "en" MPI cuando ocurrió el error. Ya que mpirún notará que el proceso murió
debido a una señal, probablemente no sea necesario (y más seguro) que el usuario solo limpie
Estado no MPI.
Si -sig La opción se usa con mpirún, LAM / MPI instalará varios controladores de señales para
localmente en cada rango para captar señales, imprimir mensajes de error y eliminar el resto de
Aplicación MPI. Este es un comportamiento algo redundante ya que ahora todo esto es manejado por
mpirún, pero se ha dejado para compatibilidad con versiones anteriores.
Proceso Exit Estados
El -sa, -sfy -p Los parámetros se pueden utilizar para mostrar los estados existentes del
procesos MPI individuales a medida que terminan. -sa obliga a que se muestren los estados de salida
para todos los procesos; -sf solo muestra los estados existentes si al menos un proceso termina
ya sea por una señal o un estado de salida distinto de cero (tenga en cuenta que salir antes de invocar
MPI_FINALIZAR causará un estado de salida distinto de cero).
El estado de cada proceso se imprime, uno por línea, en el siguiente formato:
prefix_string nodo pid estado inactivo
If que han muerto es 1, entonces estado es el número de la señal. Si que han muerto es 0, entonces estado es la salida
estado del proceso.
El valor por defecto cadena_prefijo es "mpirun:", pero el -p La opción se puede usar anular esta
cadena.
Current Acoplar Directory
El comportamiento predeterminado de mpirun ha cambiado con respecto al directorio que procesa
se iniciará en.
El -wd La opción de mpirun permite al usuario cambiar a un directorio arbitrario antes de su
se invoca el programa. También se puede utilizar en archivos de esquema de aplicación para especificar el trabajo
directorios en nodos específicos y / o para aplicaciones específicas.
Si -wd La opción aparece tanto en un archivo de esquema como en la línea de comando, el archivo de esquema
directorio anulará el valor de la línea de comando.
El -D La opción cambiará el directorio de trabajo actual al directorio donde el
ejecutable reside. No se puede utilizar en archivos de esquema de aplicación. -wd es mutuamente
exclusivo con -D.
Si ninguno -wd ni -D se especifican, el nodo local enviará el nombre del directorio donde
mpirun se invocó desde cada uno de los nodos remotos. Los nodos remotos intentarán
cambie a ese directorio. Si fallan (por ejemplo, si el directorio no existe en ese
nodo), comenzarán desde el directorio de inicio del usuario.
Todo cambio de directorio ocurre antes de que se invoque el programa del usuario; no espera hasta
MPI_INIT se llama.
Proceso Entorno
Los procesos en la aplicación MPI heredan su entorno del demonio LAM en el
nodo en el que se están ejecutando. El entorno de un demonio LAM se arregla al arrancar
el LAM con arranque(1) y normalmente se hereda del shell del usuario. Sobre el origen
nodo, este será el shell desde el que arranque(1) fue invocado; en nodos remotos, la exacta
El entorno está determinado por el módulo SSI de arranque utilizado por arranque(1). El módulo de arranque rsh,
por ejemplo, usa rsh / ssh para lanzar el demonio LAM en nodos remotos, y normalmente
ejecuta uno o más de los archivos de configuración de shell del usuario antes de lanzar el demonio LAM.
Al ejecutar aplicaciones vinculadas dinámicamente que requieren el entorno LD_LIBRARY_PATH
variable que se va a configurar, se debe tener cuidado para asegurarse de que se establece correctamente al arrancar el
JUSTICIA.
Exportado Entorno Variables
Todas las variables de entorno que se nombran en la forma LAM_MPI_ *, LAM_IMPI_ * o IMPI_ * serán
se exportará automáticamente a nuevos procesos en los nodos locales y remotos. Esta exportando
puede inhibirse con el -nx .
Además, puedes incorporar a tu protocolo -x opción de mpirún se puede utilizar para exportar variables de entorno específicas
a los nuevos procesos. Mientras que la sintaxis del -x opción permite la definición de nuevos
variables, tenga en cuenta que el analizador de esta opción actualmente no es muy sofisticado;
ni siquiera comprende los valores cotizados. Se aconseja a los usuarios que establezcan variables en el
medio ambiente y uso -x exportarlos; no para definirlos.
Trace Generation
Dos conmutadores controlan la generación de trazas de los procesos que se ejecutan bajo LAM y ambos deben estar en
la posición de encendido para que se generen las trazas. El primer interruptor está controlado por
mpirún y el segundo interruptor se establece inicialmente por mpirún pero se puede alternar en tiempo de ejecución con
MPIL_Trace_on(2) y MPIL_Trace_off(2). los -t (-tonelada es equivalente) y -petimetre opciones todas
encienda el primer interruptor. De lo contrario, el primer interruptor está apagado y las llamadas a MPIL_Trace_on(2)
en el programa de aplicación son ineficaces. los -t La opción también enciende el segundo
cambiar. los -petimetre La opción apaga el segundo interruptor. Ver MPIL_Trace_on(2) y
lamtraza(1) para más detalles.
MPI Data Conversión
La biblioteca MPI de LAM convierte los mensajes MPI de representación local a representación LAM
al enviarlos y luego volver a la representación local al recibirlos. Si el caso
de un LAM que consiste en una red homogénea de máquinas donde la representación local
difiere de la representación LAM, esto puede resultar en conversiones innecesarias.
El -O El interruptor solía ser necesario para indicar a LAM si la computadora múltiple estaba
homogéneo o no. LAM ahora determina automáticamente si un trabajo MPI dado es
homogéneo o no. los -O la bandera se aceptará silenciosamente por compatibilidad con versiones anteriores,
pero se ignora.
SSI (Sistema Servicios Interfaz)
El -ssi El conmutador permite el paso de parámetros a varios módulos SSI. SSI de LAM
Los módulos se describen en detalle en lamsi(7). Los módulos SSI tienen un impacto directo en MPI
programas porque permiten que se establezcan parámetros ajustables en tiempo de ejecución (como qué RPI
controlador de dispositivo de comunicación a utilizar, qué parámetros pasar a ese RPI, etc.).
El -ssi switch toma dos argumentos: clave y propuesta de. clave argumento generalmente especifica
qué módulo SSI recibirá el valor. Por ejemplo, el clave "rpi" se utiliza para seleccionar
qué RPI se utilizará para transportar mensajes MPI. los propuesta de argumento es el valor que
esta pasado. Por ejemplo:
mpirun -ssi rpi lamd SUST. foo
Le dice a LAM que use el RPI "lamd" y que ejecute una única copia de "foo" en cada nodo.
mpirun -ssi rpi tcp SUST. foo
Le dice a LAM que use el RPI "tcp".
mpirun -ssi rpi sysv SUST. foo
Le dice a LAM que use el RPI "sysv".
Etcétera. Los módulos RPI SSI de LAM se describen en lamssi_rpi(7).
El -ssi El interruptor se puede utilizar varias veces para especificar diferentes clave y/o propuesta de
argumentos. Si el mismo clave se especifica más de una vez, el propuesta des están concatenados con
una coma (",") separándolos.
Tenga en cuenta que -ssi Switch es simplemente un atajo para configurar variables de entorno. los
El mismo efecto se puede lograr estableciendo las variables de entorno correspondientes antes
correr mpirún. La forma de las variables de entorno que establece LAM son:
LAM_MPI_SSI_key = valor.
Tenga en cuenta que -ssi el conmutador anula cualquier variable de entorno establecida previamente. También tenga en cuenta
que desconocido clave los argumentos todavía se establecen como variables de entorno, no se verifican
(Por mpirún) para la corrección. Ilegal o incorrecto propuesta de Los argumentos pueden o no ser
informado: depende del módulo SSI específico.
El -ssi cambiar obsoleto el viejo -c2c y -lamd interruptores. Estos interruptores solían ser
relevante porque LAM solo podría tener dos RPI disponibles a la vez: el RPI lamd y uno
de los RPI de C2C. Esto ya no es cierto: ahora todos los RPI están disponibles y se pueden elegir en
tiempo de ejecución. La selección del RPI de lamd se muestra en los ejemplos anteriores. los -c2c interruptor no tiene
traducción directa ya que "C2C" solía referirse a todos los demás RPI que no eran lamd
RPI. Como tal, -ssi rpm propuesta de debe usarse para seleccionar el RPI específico deseado (ya sea
es "lamd" o uno de los otros RPI).
Flujo de Aire Sobre Recursos
De forma predeterminada, LAM garantizará una cantidad mínima de almacenamiento en búfer de sobres de mensajes para cada MPI
par de procesos e impedirá o informará un error a un proceso que intente desbordarse
este recurso del sistema. Esta característica de robustez y depuración se implementa en una máquina
de manera específica cuando se utiliza la comunicación directa. Para la comunicación LAM normal a través del
Demonio LAM, se utiliza un protocolo. los desconocido opción desactiva GER y las medidas tomadas para
apoyarlo. El administrador del sistema configura el GER mínimo cuando LAM está
instalada. Ver MPI(7) para más detalles.
EJEMPLOS
Asegúrese de ver también los ejemplos en la sección "Nomenclatura de ubicación", más arriba.
mpirun SUST. prog1
Cargue y ejecute prog1 en todos los nodos. Busque el archivo ejecutable en $ PATH del usuario
en cada nodo.
mpirun -c 8 prog1
Ejecute 8 copias de prog1 donde LAM quiera ejecutarlas.
mpirun n8-10 -v -nw -s n3 prog1 -q
Cargue y ejecute prog1 en los nodos 8, 9 y 10. Busque prog1 en el nodo 3 y transfiera
a los tres nodos de destino. Informe a medida que se crea cada proceso. Dar "-q" como
línea de comando para cada nuevo proceso. No espere a que se completen los procesos antes
saliendo mpirún.
mpirun -v miaplicación
Analice el esquema de la aplicación, myapp, e inicie todos los procesos especificados en él. Reporte
a medida que se crea cada proceso.
mpirun -npty -wd / work / output -x DISPLAY C my_application
Inicie una copia de "my_application" en cada CPU disponible. El número de disponibles
Las CPU en cada nodo se especificaron previamente cuando se arrancó LAM con arranque(1). Como
anotado arriba, mpirún programará el rango contiguo en MPI_COMM_MUNDO en el mismo nodo
donde sea posible. Por ejemplo, si n0 tiene un número de CPU de 8 y n1 tiene un número de CPU de 4,
mpirún pondrá MPI_COMM_MUNDO se clasifica del 0 al 7 en n0 y del 8 al 11 en n1.
Esto tiende a maximizar la comunicación en el nodo para muchas aplicaciones paralelas; cuando se utiliza
junto con los RPI de memoria compartida / red multiprotocolo en LAM (consulte el
RELEASE_NOTES e INSTALL archivos con la distribución LAM), comunicación general
el rendimiento puede ser bastante bueno. También deshabilite el soporte pseudo-tty, cambie el directorio a
/ work / output, y exporte la variable DISPLAY a los nuevos procesos (quizás
my_application invocará una aplicación X como xv para mostrar la salida).
La diagnostica
mpirun: error de formato Exec
Por lo general, esto significa que una serie de procesos o una cláusula where apropiada
no se especificó, lo que indica que LAM no sabe cuántos procesos ejecutar. Ver
las secciones de EJEMPLOS y "Nomenclatura de ubicación", arriba, para ejemplos sobre cómo
especificar cuántos procesos ejecutar y / o dónde ejecutarlos. Sin embargo, también puede
significa que se detectó un carácter no ASCII en el esquema de la aplicación. Este es
generalmente un error de uso de la línea de comando donde mpirún espera un esquema de aplicación y
se proporcionó un archivo ejecutable.
mpirun: error de sintaxis en el esquema de la aplicación, línea XXX
El esquema de la aplicación no se puede analizar debido a un error de uso o de sintaxis en el
línea dada en el archivo.
nombre de archivo: no existe tal archivo o directorio
Este error puede ocurrir en dos casos. O el archivo nombrado no se puede localizar o tiene
encontrado pero el usuario no tiene permisos suficientes para ejecutar el programa o
leer el esquema de la aplicación.
DEVOLUCION VALOR
mpirún devuelve 0 si todos los rangos comienzan por mpirún salir después de llamar a MPI_FINALIZE. Un no
Se devuelve un valor cero si se produjo un error interno en mpirun, o en uno o más rangos
salió antes de llamar a MPI_FINALIZE. Si se produjo un error interno en mpirun, el
se devuelve el código de error correspondiente. En el caso de que uno o más rangos salgan antes
llamando MPI_FINALIZE, el valor de retorno del rango del proceso que mpirún first
Se devolverán los avisos que murieron antes de llamar a MPI_FINALIZE. Tenga en cuenta que, en general, este
será el primer rango que murió, pero no se garantiza que así sea.
Sin embargo, tenga en cuenta que si el -noroeste se utiliza el interruptor, el valor de retorno de mpirun no
indicar el estado de salida de los rangos.
Use mpirun.lam en línea usando los servicios de onworks.net