Este es el comando NPtcp 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
NetPIPE - RedTrabaja PRotocol Iindependiente Pendimiento Etasador
SINOPSIS
NPtcp [-h receptor_hostname] [-b TCP_buffer_sizes] [opciones]
mpirun [-archivo de máquina lista de host] -np 2 NPmpi [-a] [-S] [-z] [opciones]
mpirun [-archivo de máquina lista de host] -np 2 NPmpi2 [-f] [-g] [opciones]
NPvm [opciones]
Consulte las secciones PRUEBAS a continuación para obtener una descripción más completa de cómo ejecutar NetPIPE en
cada ambiente. La sección OPCIONES describe las opciones generales disponibles para todos
módulos. Vea el archivo README del tar-ball en
http://www.scl.ameslab.gov/Projects/NetPIPE/ para obtener documentación sobre InfiniBand, GM,
Módulos SHMEM, LAPI y memcpy.
DESCRIPCIÓN
netpipe utiliza una serie simple de pruebas de ping-pong en una variedad de tamaños de mensajes para proporcionar una
medida completa del rendimiento de una red. Rebota mensajes de tamaño creciente
entre dos procesos, ya sea a través de una red o dentro de un sistema SMP. Tamaños de mensaje
se eligen a intervalos regulares, y con ligeras perturbaciones, para proporcionar una completa
evaluación del sistema de comunicación. Cada punto de datos implica muchas pruebas de ping-pong para
proporcionar una sincronización precisa. Las latencias se calculan dividiendo el tiempo de ida y vuelta en
la mitad para mensajes pequeños (menos de 64 bytes).
El tiempo de comunicación para mensajes pequeños está dominado por la sobrecarga en el
capas de comunicación, lo que significa que la transmisión está ligada a la latencia. Para mayor
mensajes, la velocidad de comunicación se convierte en ancho de banda limitado por algún componente en el
subsistema de comunicación (bus PCI, enlace de tarjeta de red, conmutador de red).
Estas mediciones se pueden realizar en la capa de paso de mensajes (MPI, MPI-2 y PVM) o en
las capas de comunicaciones nativas sobre las que se ejecutan (TCP / IP, GM para tarjetas Myrinet,
InfiniBand, SHMEM para los sistemas Cray T3E y LAPI para los sistemas IBM SP). El trabajo reciente es
con el objetivo de medir algunas propiedades internas del sistema, como el módulo memcpy que
mide las tasas de copia de la memoria interna, o un módulo de disco en desarrollo que mide
el rendimiento a varios dispositivos de E / S.
Algunos usos de NetPIPE incluyen:
Comparación de la latencia y el rendimiento máximo de varias tarjetas de red.
Comparar el rendimiento entre diferentes tipos de redes.
Buscando ineficiencias en la capa de transmisión de mensajes comparándola con la
capa de comunicación nativa.
Optimización de la capa de transmisión de mensajes y ajuste de los parámetros del controlador y del sistema operativo para una óptima
rendimiento del subsistema de comunicaciones.
netpipe cuenta con muchos módulos que le permiten interactuar con una amplia variedad de
capas de comunicación. Es bastante fácil escribir nuevas interfaces para otras aplicaciones confiables.
protocolos utilizando los módulos existentes como ejemplos.
Servicios TCP
NPtcp ahora se puede iniciar de dos formas, iniciando manualmente NPtcp en ambos sistemas o por
usando un script nplaunch. Para iniciar NPtcp manualmente, se debe iniciar el receptor NetPIPE
primero en el sistema remoto usando el comando:
NPtcp [opciones]
luego, el transmisor primario se inicia en el sistema local con el comando
NPtcp-h receptor_hostname [opciones]
Cualquier opción utilizada debe ser la misma en ambos lados.
El script nplaunch usa ssh para iniciar el receptor remoto antes de iniciar el local.
transmisor. Para usar rsh, simplemente cambie el script nplaunch.
nplaunch NPtcp -h receptor_hostname [opciones]
Los -b TCP_buffer_sizes La opción establece el tamaño del búfer del socket TCP, que puede
influir en el rendimiento máximo en algunos sistemas. Un gráfico de rendimiento que se aplana
repentinamente puede ser una señal de que el rendimiento está limitado por los tamaños de búfer de socket.
Servicios MPI y MPI-2
El uso de la interfaz MPI para NetPIPE depende de la implementación MPI que se utilice. Todos
Requerirá que se especifique el número de procesos, generalmente con un -notario público 2 argumento.
Los entornos de clústeres pueden requerir una lista de los hosts que se utilizan cuando se ejecuta cada trabajo.
Coloque la lista de hosts en la lista de hosts y luego, para OpenMPI, ejecute NetPIPE usando:
mpirun --archivohost lista de host -np 2 NPmpi [opciones de NetPIPE]
Para MPICH2 use en su lugar:
mpirun -archivo de máquina lista de host -np 2 NPmpi [opciones de NetPIPE]
Para probar las comunicaciones unilaterales del estándar MPI-1, compile usando:
“piensen de nuevo sobre los incrementos de precio” mpi2
Ejecutando como se describe arriba y MPI usará llamadas MPI_Put () de un solo lado en ambas direcciones,
con cada receptor bloqueado hasta que se sobrescriba el último byte antes de rebotar el
mensaje de vuelta. Utilizar el -f opción para forzar el uso de una cerca para bloquear en lugar de una
sobrescritura del último byte. los -g La opción usará las funciones MP_Get () para transferir la
datos en lugar de MP_Put ().
Servicios jugador más valioso
Inicie el sistema pvm usando:
pvm
y agregando una segunda máquina con el comando PVM
add receptor_hostname
Salga de la interfaz de línea de comandos de PVM usando quit, luego ejecute el receptor PVM NetPIPE en una
sistema con el comando:
NPpvm [opciones]
y ejecute el transmisor TCP NetPIPE en el otro sistema con el comando:
NPpvm-h receptor hostname [opciones]
Cualquier opción utilizada debe ser la misma en ambos lados. También se puede utilizar el script nplaunch
con NPpvm como se describe anteriormente para NPtcp.
Servicios METODOLOGÍA
netpipe prueba el rendimiento de la red enviando una serie de mensajes en cada tamaño de bloque,
comenzando desde el límite inferior de los tamaños de los mensajes.
El tamaño del mensaje se incrementa hasta que se alcanza el límite superior del tamaño del mensaje o
el tiempo para transmitir un bloque excede un segundo, lo que ocurra primero. Tamaños de mensaje
se eligen a intervalos regulares, y para ligeras perturbaciones de ellos para proporcionar una mayor
evaluación completa del subsistema de comunicación.
Los netpipe El archivo de salida se puede graficar usando un programa como parcela gnuplot(1). La salida
el archivo contiene tres columnas: el número de bytes en el bloque, la tasa de transferencia en bits
por segundo, y el tiempo para transferir el bloque (la mitad del tiempo de ida y vuelta). Los primeros dos
Las columnas se utilizan normalmente para graficar el rendimiento frente al tamaño del bloque, mientras que la tercera columna
proporciona la latencia. Por ejemplo, el throughput y no bloquear tamaño se puede crear un gráfico
graficando bytes versus bits por segundo. Muestra parcela gnuplot(1) comandos para un gráfico de este tipo
sería
establecer escala logscale x
trazar "np.out"
OPCIONES
-a modo asíncrono: prepost recibe (módulos MPI, IB)
-b TCP_buffer_sizes
Configure los tamaños de búfer TCP de envío y recepción (solo módulo TCP).
-B Modo de ráfaga en el que todas las recepciones se prepublican a la vez (módulos MPI, IB).
-f Use una cerca para bloquear para completar (solo módulo MPI2).
-g Utilice MPI_Get () en lugar de MPI_Put () (solo módulo MPI2).
-h hostname
Especifique el nombre del host receptor al que conectarse (TCP, PVM, IB, GM).
-I Invalidar caché para medir el rendimiento sin efectos de caché (afecta principalmente a IB
y módulos memcpy).
-i Realice una verificación de integridad en lugar de una evaluación de desempeño.
-l tamaño_msg_inicio
Especifique el límite inferior para el tamaño de los mensajes que se probarán.
-n n repite
Establezca el número de repeticiones para cada prueba en una constante. De lo contrario, el número de
Se elige repeticiones para proporcionar una sincronización precisa para cada prueba. Tenga mucho cuidado si
especificar un número bajo para que el tiempo de la prueba de ping-pong exceda el temporizador
exactitud.
-O desplazamiento_fuente, desplazamiento_destino
Especifique las compensaciones de origen y destino de los búferes de la página perfecta
alineación.
-o Nombre del archivo de salida
Especifique el nombre del archivo de salida (el predeterminado es np.out).
-p tamaño_de_ perturbación
NetPIPE elige los tamaños de los mensajes a intervalos regulares, incrementándolos
exponencialmente desde el límite inferior al límite superior. En cada punto,
también prueba las perturbaciones de 3 bytes por encima y 3 bytes por debajo de cada punto de prueba para encontrar
idiosincrasias en el sistema. Este valor de perturbación se puede cambiar utilizando el -p
opción, o desactivado usando -p 0 .
-r Esta opción restablece los sockets TCP después de cada prueba (solo módulo TCP). Está
necesario para que algunas pruebas de transmisión obtengan buenas mediciones, ya que la ventana del zócalo
de lo contrario, el tamaño puede colapsar.
-s Configure el modo de transmisión en el que los datos solo se transmiten en una dirección.
-S Utilice envíos síncronos (solo módulo MPI).
-u límite_superior
Especifique el límite superior del tamaño del mensaje que se está probando. Por defecto,
NetPIPE se detendrá cuando el tiempo para transmitir un bloque exceda un segundo.
-z Reciba mensajes usando MPI_ANY_SOURCE (solo módulo MPI)
-2 Configure el modo bidireccional donde ambos lados envían y reciben al mismo tiempo
(compatible con la mayoría de los módulos). Puede que necesite utilizar -a elegir asincrónico
comunicaciones para MPI para evitar congelaciones. Para TCP, el tamaño máximo de prueba será
limitado por los tamaños de búfer de TCP.
Use NPtcp en línea usando los servicios de onworks.net