30.07.2015 Views

Actas JP2011 - Universidad de La Laguna

Actas JP2011 - Universidad de La Laguna

Actas JP2011 - Universidad de La Laguna

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Actas</strong> XXII Jornadas <strong>de</strong> Paralelismo (<strong>JP2011</strong>) , <strong>La</strong> <strong>La</strong>guna, Tenerife, 7-9 septiembre 2011MPJ ApplicationsF−MPJ Library<strong>de</strong>vice layeromx<strong>de</strong>vibv<strong>de</strong>vnio<strong>de</strong>v/io<strong>de</strong>vsmp<strong>de</strong>vJVMJNIJava SocketsJava Threadsnative commsOpen−MXIBVTCP/IPMyrinet/EthernetInfiniBandEthernetShared MemoryFig. 2.F-MPJ communication <strong>de</strong>vices on shared memory and cluster networksel método Class.forName(). Para que esta aproximaciónfuncione, es necesario tener en cuenta quela ejecución <strong>de</strong> la <strong>de</strong>serialización tiene que llevarsea cabo en el thread local, es <strong>de</strong>cir, en el receptor.Esto es relevante para las comunicaciones no bloqueantes,en las que cualquiera <strong>de</strong> los threads queestá esperando a que se complete pue<strong>de</strong> hacer la comunicaciónefectiva.IV. Evaluación <strong>de</strong>l RendimientoA. Configuración ExperimentalEn esta evaluación se han utilizado dos máquinas.<strong>La</strong> primera <strong>de</strong> ellas (“Nehalem”) cuenta con 2 procesadoresIntel Xeon E5520 quad-core Nehalem y 8Gbytes <strong>de</strong> RAM, con Sistema Operativo Linux CentOS5.3 y la JVM Sun JDK 1.6.0 23. <strong>La</strong> segunda(“Magny Cours”) es una máquina con 4 procesadoresAMD “Magny Cours”, cada uno con 12 núcleos (48núcleos en total) y 128 Gbytes <strong>de</strong> RAM. El SistemaOperativo es Linux CentOS 5.5, y la JVM Sun JDK1.6.0 05.<strong>La</strong>s implementaciones MPJ evaluadas son F-MPJ(release interna) y MPJ Express versión 0.38, a<strong>de</strong>más<strong>de</strong> las bibliotecas Intel MPI v.4.0.0.028 (usado enmáquina “Magny Cours”), OpenMPI v1.4.2 (en“Magny Cours”) y v1.3.3 (en “Nehalem”), y MVA-PICH2 r3510 (en “Nehalem”). Para OpenMP se hausado el compilador gcc v.4.3.4.B. Micro-benchmarking <strong>de</strong> Primitivas Punto aPuntoEl micro-benchmarking en Java se ha llevado acabo con nuestra propia suite, similar a los Intel MPIBenchmarks (IMB) utilizados para bibliotecas MPI,<strong>de</strong>bido a la falta <strong>de</strong> una suite <strong>de</strong> benchmarking a<strong>de</strong>cuadapara MPJ.<strong>La</strong> Figura 4 presenta el rendimiento <strong>de</strong> un benchmark<strong>de</strong> PingPong entre dos procesos/threads <strong>de</strong>ntro<strong>de</strong> un mismo nodo mostrando la latencia para mensajes<strong>de</strong> tamaño inferior a un Kbyte y el ancho <strong>de</strong>banda para mensajes mayores. Para la transferencia<strong>de</strong> datos se han utilizado arrays <strong>de</strong> bytes evitando elcoste <strong>de</strong> la serialización <strong>de</strong> objetos. <strong>La</strong>s opciones medidasson F-MPJ y MPJ Express con sus respectivosdispositivos smp<strong>de</strong>v y las distintas implementacionesMPI utilizando su soporte para memoria compartida.Tal y como se ve en las gráficas, la latencia <strong>de</strong>MPJ Express es bastante superior a la <strong>de</strong> las <strong>de</strong>másopciones, todas por <strong>de</strong>bajo <strong>de</strong> los 5 µs. En cuantoal ancho <strong>de</strong> banda, también se queda por <strong>de</strong>bajo,<strong>La</strong>tency (µs)Point-to-Point Java Communication Performance (Nehalem)8024F-MPJ (smp<strong>de</strong>v)MPJE (smp<strong>de</strong>v)7522MVAPICH27020OpenMPI6560185516501445124035103082562041510201 4 16 64 256 1K 4K 16K 64K 256K 1M 4M516M 0Message Size (Bytes)Point-to-point Java Communication Performance (Magny Cours)<strong>La</strong>tency (µs)4540F-MPJ (smp<strong>de</strong>v)MPJE (smp<strong>de</strong>v)IntelMPI 435242230201825162014121510810654204 16 64 256 1K 4K 16K 64K 256K 1M 4M 16M 0Message size (Bytes)Fig. 4. Message-passing point-to-point performance on sharedmemory.302826mientras que el dispositivo <strong>de</strong> memoria compartidapresentado en este artículo supera ampliamente elrendimiento <strong>de</strong> todas las <strong>de</strong>más. Esto es así porqueestá optimizado para que el intercambio <strong>de</strong> mensajesentre threads se realice mediante copias <strong>de</strong> arrays,aprovechando <strong>de</strong> este modo la arquitectura <strong>de</strong> memoriacompartida. <strong>La</strong> diferencia <strong>de</strong> ancho <strong>de</strong> banda entrediferentes procesadores se <strong>de</strong>be a la arquitectura<strong>de</strong>l procesador y a la asignación <strong>de</strong> threads a cores,ya que hay una probabilidad bastante elevada <strong>de</strong> quese ejecuten en núcleos <strong>de</strong> distintos procesadores <strong>de</strong>ntro<strong>de</strong>l mismo nodo. <strong>La</strong> pérdida <strong>de</strong> rendimiento apartir <strong>de</strong> 1 Mbyte con 8 núcleos, o <strong>de</strong> 256 Kbytescon 48, se pue<strong>de</strong> superar mediante la segmentación<strong>de</strong> mensajes lo cual permite incrementar la localidad<strong>de</strong> los datos.C. Micro-benchmarking <strong>de</strong> Primitivas Colectivas<strong>La</strong> Figura 5 presenta el ancho <strong>de</strong> banda agregado<strong>de</strong> una operación collectiva representativa (broadcast)utilizando todos los núcleos disponibles en “Nehalem”(8) y “Magny Cours” (48). <strong>La</strong> selección <strong>de</strong>lBandwidth (Gbps)Bandwidth (Gbps)<strong>JP2011</strong>-442

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!