9

JORNADAS DE PARALELISMO - infor.uva.esdiego/docs/aldea08-published.pdf · los objetivos o presupuesto, y si realmente es nece-sario adquirir software comercial para obtener unos mejores

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: JORNADAS DE PARALELISMO - infor.uva.esdiego/docs/aldea08-published.pdf · los objetivos o presupuesto, y si realmente es nece-sario adquirir software comercial para obtener unos mejores
Page 2: JORNADAS DE PARALELISMO - infor.uva.esdiego/docs/aldea08-published.pdf · los objetivos o presupuesto, y si realmente es nece-sario adquirir software comercial para obtener unos mejores

© Del text: els autors, 2008

© De la present edició: Publicacions de la Universitat Jaume I, 2008

Edita: Publicacions de la Universitat Jaume I. Servei de Comunicació i PublicacionsCampus del Riu Sec. Edifi ci Rectorat i Serveis Centrals.12071 Castelló de la Plana Fax 964 72 88 32http://www.tenda.uji.es e-mail: [email protected]

ISBN: 978-84-8021-676-0

Dipòsit legal: V-3132-2008

Imprimeix: Digital Gràfi c. Tel. 961 710 317http://www.digitalgrafi c.net c/e: info@digitalgrafi c.net

JORNADAS DE PARALELISMO (19es. 2008. Castelló de la Plana)

XIX Jornadas de paralelismo [Recurs electrònic] : Castellón 17, 18 y 19 de septiembre de 2008 / José M. Badía … [et al.] (eds.) —Castelló de la Plana : Publicacions de la Universitat Jaume I, D.L. 2008

1 disc òptic (CD-ROM) + 1 llibret. —(e-Treballs d’informàtica I tecnologia ; 8)ISBN 978-84-8021-676-0

1.Processament en paral·lel (Ordinadors) – Congressos. I. Badía Contelles, José Manuel, ed. II. Universitat Jaume I (Castelló). Publicacions de la Universitat Jaume I. III. Títol. IV. Sèrie.681.324(063)

Page 3: JORNADAS DE PARALELISMO - infor.uva.esdiego/docs/aldea08-published.pdf · los objetivos o presupuesto, y si realmente es nece-sario adquirir software comercial para obtener unos mejores

• Adaptacion de metricas clasicas para evaluar y disenar sistemas hardwareAntonio Guzman Sacristan y Marta Beltran Pardo . . . . . . . . . . . . . . . . . . . . . . . . . . . 235

• A low-overhead technique to protect the issue control logic against soft errorsJavier Carretero, Xavier Vera, Jaume Abella, Pedro Chaparro y Antonio Gonzalez . . . . . . . . . . 241

• Decreasing the Tag and Data Length to Reduce the BTB Hot SpotNoel Tomas Arnau, Julio Sahuquillo Borras, Salvador Petit Martı y Pedro Lopez Rodrıguez. . . . . 247

• Adapting Dynamic Core Coupling to a direct-network environmentDaniel Sanchez Pedreno, Juan Luis Aragon Alcaraz y Jose Manuel Garcıa Carrasco . . . . . . . . . 253

• Recuperando ancho de banda de los enlaces fallidos en NoCsCarles Hernandez Luz, Federico Silla Jimenez, Vicente Santonja Gisbert y Jose Duato Marın . . . . 259

• Virtualization technologies: An overviewFernando Terroso Saenz, Ricardo Fernandez Pascual y Jose Manuel Garcıa Carrasco . . . . . . . . . 265

• Task Management Analysis on the CellBEAlejandro Rico Carro, Alex Ramırez Bellido y Mateo Valero Cortes . . . . . . . . . . . . . . . . . . 271

• Una Implementacion Eficiente de Algoritmos de Encaminamiento Distribuido para Redes dentrodel ChipSamuel Rodrigo Mocholı, Jose Flich Cardo y Jose Duato Marın . . . . . . . . . . . . . . . . . . . . 277

Computacion de altas prestaciones sobre arquitecturasparalelas heterogeneas (CAPAP-H)• CoDiP2P: a Distributed Computing Architecture Oriented to P2P Environments

Damia Castella Martınez, Josep Rius Torrento, Ignasi Barri Vilardell, Albert Guim Mas, MiquelOrobitg Cortada, Hector Blanco de Frutos y Francesc Gine de Sola . . . . . . . . . . . . . . . . . . 285

• Solving Dense Linear Systems on Platforms with Multiple Hardware AcceleratorsMaribel Castillo, Gregorio Quintana Ortı, Francisco D. Igual, Rafael Mayo, Enrique S. QuintanaOrtı y Robert van de Geijn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290

• Heterogeneous PBLAS: The PBLAS for Heterogeneous Computational ClustersPedro Alonso Jorda, Ravindranah Reddy y Alexey Lastovetsky . . . . . . . . . . . . . . . . . . . . 296

• Application of metaheuristics to tasks-to-processors assignation problems in heterogeneous systemsFrancisco Almeida, Javier Cuenca, Domingo Gimenez y Juan Pedro Martınez Gallar. . . . . . . . . 302

• A parallel MMSE-OSIC algorithm on heterogeneous networksFrancisco Jose Martınez Zaldıvar, Antonio M. Vidal Macia y Domingo Gimenez . . . . . . . . . . . 308

Compilacion para sistemas de altas prestaciones• Evaluacion de compiladores comerciales usando SPEC CPU2006

Sergio Aldea, Diego R. Llanos y Arturo Gonzalez Escribano . . . . . . . . . . . . . . . . . . . . . . 317• Tolerancia a fallos en aplicaciones reales utilizando CPPC

Marta Loureiro Penas, Gabriel Rodrıguez Alvarez, Patricia Gonzalez Gomez, Marıa J. MartınSantamarıa, Jose Carlos Mourino Gallego y Marıa Teresa Sanchez . . . . . . . . . . . . . . . . . . . 323

• Implementacion de la Representacion Gated Single Assignment en el Compilador GCCManuel Carlos Arenaz Silva, Pedro Jose Amoedo Martınez y Juan Tourino Domınguez . . . . . . . 329

• Evaluacion de Algoritmos de Asignacion de Registros desde la Perspectiva de los SistemasEmpotradosRodrigo Gonzalez Alberquilla, Luis Pinuel, Jose Ignacio Gomez y Francisco Tirado . . . . . . . . . 335

• Front-End para un sistema de mapeo automatico de paralelismoJavier Saez-Villagra, Arturo Gonzalez Escribano y Diego R. Llanos . . . . . . . . . . . . . . . . . . 341

Docencia en ATC• Utilizando la PlayStation 3 como un recurso computacional paralelo remoto

Ruyman Reyes Castro, Francisco Almeida, Vicente Blanco y Adrian Santos. . . . . . . . . . . . . . 349• Tarjeta Audio Usb y Controlador de Dispositivo. Una nueva propuesta de practica transversal para

titulaciones TICJosefa Dıaz Alvarez, Francisco Fernandez de Vega, Juan Carlos Peguero Chamizo, Juan AngelGarcıa Martinez y Joaquın Llano Montero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355

• NETinVM: una red en una maquina virtualCarlos Perez Conde y David Perez Conde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361

• Agregando la participacion de los alumnos en la clase conectada

iii

diego
Resaltado
Page 4: JORNADAS DE PARALELISMO - infor.uva.esdiego/docs/aldea08-published.pdf · los objetivos o presupuesto, y si realmente es nece-sario adquirir software comercial para obtener unos mejores

Evaluación de compiladores comercialesusando SPEC CPU2006

Sergio Aldea, Diego R. Llanos, Arturo González-Escribano1

Resumen— La elección del compilador es una deci-sión de especial importancia a la hora de obtener elmáximo rendimiento de una aplicación, no sólo pa-ra mejorar el tiempo de su ejecución secuencial si-no también para explorar la posibilidad de paralelizarautomáticamente parte de su código. El presente tra-bajo busca evaluar las capacidades de optimización detres compiladores utilizando la suite SPEC CPU2006,analizando además las capacidades de paralelizaciónautomática que ofrecen al programador. Los compi-ladores analizados son el Intel C/Fortran Compiler10.0, Sun Studio 12 y GCC 4.1.2. Se evaluará el ren-dimiento de dichos compiladores ejecutando la suiteSPEC CPU2006 sobre diferentes arquitecturas.

Palabras clave—Compiladores, GCC, Intel, Sun, pa-ralelismo, SPEC CPU2006, benchmark

I. Introducción

ESTE trabajo busca comparar tres de los prin-cipales conjuntos de compiladores comerciales:

Intel, Sun y GCC. El estudio se ha realizado sobrevarias plataformas de 32 y 64 bits utilizando la sui-te SPEC CPU2006 como medio para comparar elrendimiento de los compiladores sobre los distintosbenchmarks y configuraciones hardware. El objetivode este trabajo es ofrecer unos resultados que puedanayudar a elegir un compilador u otro, en función delos objetivos o presupuesto, y si realmente es nece-sario adquirir software comercial para obtener unosmejores resultados.

El trabajo se estructura como sigue. La sección 2describe el conjunto de benchmarks SPEC CPU2006,con una breve descripción de su evolución y utilidad;la sección 3 define los SUT (System Under Test), esdecir, las máquinas sobre las cuales se ha realizadolos experimentos; las secciones 4 y 5 ofrecen los resul-tados más significativos y de mayor interés de entrelos experimentos realizados con los dos conjuntos queforman el benchmark, el de números enteros, y el depunto flotante. Por último, en la sección 6 se realizauna valoración global y se describen las principalesconclusiones extraidas de los resultados.

II. Descripción del benchmark SPECCPU2006

SPEC (Standard Performance Evaluation Corpo-ration) es un consorcio sin fines lucrativos en el quese engloban productos software, fabricantes de orde-nadores, procesadores, etc. Fue fundado en 1988 porun grupo reducido de vendedores de ordenadores enbusca de un test de rendimiento estándar y que ofre-ciera unos resultados realistas y comparables. Con eltiempo, SPEC ha crecido hasta convertirse en uno de

1Dpto. de Informática, Univ. de Valladolid, España. e-mail:[email protected], {diego,arturo}@infor.uva.es

los órganos de estandarización de medición de ren-dimiento de más exito, compuesto por más de 60compañías.

Para conseguir estos objetivos, SPEC toma apli-caciones reales, utilizadas en diversos campos, y lasutiliza como benchmarks con diversas cargas de tra-bajo, con el fin de obtener medidas de rendimien-to. La primera suite fue lanzada en 1989[1], e incor-poraba únicamente diez benchmarks. SPEC actua-liza su suite periódicamente, debido a la evoluciónde los ordenadores, y el crecimiento y aumento dela complejidad de las aplicaciones. La última ver-sión, SPEC CPU2006, fue lanzada el 24 de Agostode 2006[2], incluyendo 29 benchmarks, que se englo-ban en dos grupos: los que trabajan con númerosenteros (CINT2006) y los que trabajan con núme-ros en punto flotante (CFP2006). SPEC CPU2006utiliza como máquina de referencia una estación detrabajo Sun Ultra Enterprise 2 con un procesadorUltraSPARC II a 296MHz de 2 núcleos y 2 GB dememoria RAM. Los valores de rendimiento medidosse expresan en unidades relativas a esta máquina dereferencia.

En la actualidad, la utilización de esta suite estabastante extendida, y es utilizada por las principalesempresas fabricantes de procesadores y de ordenado-res en general, publicando en sus portales web los re-sultados obtenidos, como pueden los casos de Intel[3],IBM[4], Sun Microsystems[5][6] o Fujitsu-Siemens[7].

III. Entornos de ejecución

Para este trabajo se han utilizado dos sistemas conLinux, instalando en uno de ellos las versiones de 32y 64 bits del mismo sistema operativo. La configura-ción de los sistemas es la siguiente:

El primer sistema (SUT1) monta un procesadorIntel R©CoreTM2 CPU E6300 a una velocidad de 1.86GHz, con un bus de 1066 MHz y 32 KB (datos) +32 KB (instrucciones) de caché primaria y 2 MB decaché secundaria por núcleo. El sistema de archivosutilizado es ext3. La memoria alcanza los 3 GB conuna frecuencia de 667 MHz. Como sistema operativose instalaron las versiones de 32 y 64 bits de la dis-tribución GNU/Linux Mandriva 2007.1, con versióndel kernel 2.6.17-13. Las versiones de los compilado-res utilizados fueron la 4.1.2 de GCC, la 10.0 Profes-sional Edition de Intel, y el paquete Sun Studio 12,con versiones 5.9 de los compiladores de C y C++ y8.3 de Fortran.

El segundo de los sistemas (SUT2) monta dos cpuDual Core AMD Opteron R©Processor 270, haciendoun total de 4 núcleos, a una velocidad de reloj de 1993MHz, con un bus de 1066 MHz. La caché primaria

Castellon, Septiembre 2008 317

Actas de las XIX Jornadas de Paralelismo, pp. 317-322, 2008. ISBN: 978-84-8021-676-0

Page 5: JORNADAS DE PARALELISMO - infor.uva.esdiego/docs/aldea08-published.pdf · los objetivos o presupuesto, y si realmente es nece-sario adquirir software comercial para obtener unos mejores

TABLA IOptimizaciones aplicadas

GCC Sin optimizaciones: -O2Con optimizaciones: -O3 -funroll-loops -fno-inline-functions ftree-vectorize

INTEL

Sin optimizaciones: -O2 -no-for-main (C y Fortran a la vez)Con optimizaciones (32 bits): -O3 -ipo -xT -axT -no-prec-div -funroll-all-loops -no-for-main (C y Fortran a la vez)Con optimizaciones (64 bits): -O3 -ipo -xW -axW -no-prec-div -funroll-all-loops -no-for-main (C y Fortran a la vez) -parallel (versión paralela)

SUN

Sin optimizaciones: -xO3 -library=stlport4 (Benchmarks C++ excepto 453.povray)Con optimizaciones (32 bits): -fast -xarch=sse3 -library=stlport4 (Benchmarks C++excepto 453.povray)Con optimizaciones (64 bits): -fast -xarch=sse3 -m64 -library=stlport4 (BenchmarksC++ excepto 453.povray) -xautopar -xreduction (versión paralela)

es de 64 KB + 64 KB y la secundaria de 1 MB pornúcleo. La memoria RAM es de 4 GB de capacidad.El sistema operativo es una versión de 64 bits de ladistribución Gentoo 1.12.9, con la versión 2.6.19 delkernel. Las versiones de los compiladores instaladosen este sistema son las mismas que en el anterior, afin de poder comparar los resultados.

La forma de obtener los resultados es la proporcio-nada por SPEC CPU2006. La suite proporciona tresconjuntos de trabajo para cada uno de los bench-marks: test, train y reference, ordenados de menor amayor carga de trabajo, de manera que sólo propor-ciona un informe válido si previamente ha ejecutadoen tres ocasiones los conjuntos test y train para cadabenchmark, y finalmente otras tres con el conjuntode referencia, que es el que proporciona realmente losvalores finales. La obtención del valor definitivo paracada benchmark se obtiene a partir del valor mediode entre los tres tiempos de ejecución con el conjuntode referencia. Al final, el valor que ofrece el resulta-do de cada conjunto de benchmarks se obtiene comola media geométrica de los resultados normalizadosde los benchmarks. Este valor normalizado para cadauno de ellos se obtiene a partir de su tiempo de ejecu-ción en segundos y el tiempo de ejecución del mismoen la máquina de referencia de SPEC CPU2006, ci-tada en la sección 2. En [8] puede verse un ejemplode los resultados que se obtienen con el sistema dereferencia. Esta máquina utiliza un procesador Ul-traSPARC II a 296 MHZ con dos núcleos, 16KB +16KB de caché primaria y 2MB de caché secunda-ria, 2GB de memoria RAM y dos discos duros SCSIde 36GB, uno dedicado al sistema operativo y otro alcódigo y conjunto de datos de SPEC2006. El sistemaoperativo es Solaris 10 3/05 y como compiladores, elconjunto Sun Studio 11.

IV. Rendimiento de CINT2006

En el conjunto de los benchmarks de números en-teros se puede considerar como vencedor de la com-parativa el conjunto de compiladores de Sun. Conexcepción de la máquina con arquitectura de 32 bits,en el que Intel obtiene mejores resultados, Sun lograel mejor rendimiento en el resto de las comparativas.

En esta máquina de 32 bits es, precisamente, dondese muestran las mayores diferencias entre los compi-ladores, ya que en el resto de comparativas la notapredominante es la igualdad, a nivel general, entreunos compiladores y otros, con pequeñas diferenciasentre unos y otros.

En la Figura 1.a se resume el comportamiento pa-ra el SUT1 en configuración de 32 bits. Puede obser-varse que Intel es muy superior a los compiladoresGCC, debido en parte al mecanismo de autovecto-rización de Intel, capaz de vectorizar hasta 5 buclesen el benchmark 462.libquantum, mientras que GCCsólo es capaz de hacerlo con uno. Por otro lado, Sunobtiene unos resultados cercanos a los conseguidospor Intel, el cual, individualmente, logra un rendi-miento un escalón por encima de Sun en muchos delos benchmarks.

En la configuración de 64 bits de la misma máqui-na SUT1 (figura 1.b), es Sun quien obtiene los mejo-res resultados, aunque las diferencias entre compila-dores son menores en líneas generales. En esta confi-guración merecen destacarse algunos resultados. Porejemplo, en el caso del 456.hmmer, Sun se encuentramuy por encima de los otros dos, observándose unrendimiento muy pobre del compilador GCC. Tam-bién es reseñable el bajo rendimiento del compila-dor C de Intel en el 462.libquantum, ya que en estemismo benchmark, en 32 bits, Intel obtiene el mejorresultado, como sí mantiene en el 464.h264ref.

Ya en la máquina SUT2, de 64 bits (figura 1.c), lasdiferencias numéricas son aún menores, así como elrendimiento general de la máquina, tal como se de-duce de la comparación con la figura 1.b. Aún así, loscompiladores de Sun vuelven a obtener los mejoresresultados. Al igual que ocurría en los 64 bits de laanterior máquina, Intel obtiene un rendimiento muybajo en el mismo benchmark, 462.libquantum, lo queda a entender que Intel no es capaz de optimizarcorrectamente esta aplicación bajo 64 bits. La ma-yor diferencia se produce, otra vez, en el 456.hmmer,con un resultado por parte de Sun muy superior alos otros dos compiladores. Por último, es destacableel rendimiento del compilador GCC en el benchmark464.h264ref, mejorando un 22% respecto de Intel.

318 XIX Jornadas de Paralelismo

Page 6: JORNADAS DE PARALELISMO - infor.uva.esdiego/docs/aldea08-published.pdf · los objetivos o presupuesto, y si realmente es nece-sario adquirir software comercial para obtener unos mejores

Fig. 1Resultados del conjunto de benchmarks CINT2006

Castellon, Septiembre 2008 319

Page 7: JORNADAS DE PARALELISMO - infor.uva.esdiego/docs/aldea08-published.pdf · los objetivos o presupuesto, y si realmente es nece-sario adquirir software comercial para obtener unos mejores

Los resultados con la opción de autoparalelización(figura 1.d) son muy similares y en algunos casospeores que los resultados secuenciales. Este hecho sedebe a que los benchmarks de números enteros sondifícilmente paralelizables, perdiéndose más tiempocreando y destruyendo hilos que realizando trabajoútil. Por tanto, al igual que ocurría en las ejecucionessecuenciales, las diferencias entre los compiladores deIntel y Sun son mínimas (GCC no tiene la opción deautoparalelización), repitiéndose, a nivel individual,los mismos patrones en las gráficas de 64 bits. Sun essuperior en el 456.hmmer, mientras que Intel man-tiene el bajo rendimiento en el 462.libquantum y ob-tiene un buen resultado en el 464.h264ref. En cuantoa la diferencia entre las versiones secuenciales y pa-ralelas de los benchmarks (figuras 1.e y 1.f), como yase ha comentado, son mínimas con la excepción de456.hmmer bajo compilador Sun.

V. Rendimiento de CFP2006

A diferencia de lo que ocurre en la comparativade los benchmarks de números enteros, en los quelos resultados obtenidos por los diferentes compila-dores son bastante similares, en las comparativas delos benchmarks de punto flotante las diferencias sonmucho más grandes. No sólo estas diferencias son ma-yores, sino que el vencedor en todos los casos, y conuna clara diferencia en muchos de ellos, es el com-pilador de Intel. Este compilador obtiene el mejorrendimiento con y sin optimizaciones, en 32 bits y 64bits, y en secuencial y en paralelo, tanto en términosgenerales como en la mayor parte de los benchmarksindividuales.

En lo que respecta al sistema SUT1 de 32 bits (fi-gura 2.a), Intel obtiene los mejores resultados en 16de los 17 benchmarks, estando en alguno de ellos muypor encima del resto, como es el caso de 410.bwa-ves, 435.gromacs, 436.cactusADM o 481.wrf. Curio-samente, es precisamente en estos benchmarks dondelos compiladores de GCC obtienen los peores resulta-dos, no sólo en comparación con Intel, sino tambiéncon Sun, ya que aunque los resultados de este últimose encuentran casi siempre por encima de GCC, no estanta la diferencia como en esos casos. Los compila-dores de Intel presentan una mejora del rendimientode un 26.5 % respecto a los de Sun y un 59.0% res-pecto a GCC.

Los resultados en los 64 bits de la máquina SUT1(figura 2.b) son similares al caso anterior. Las di-ferencias entre compiladores siguen siendo bastantegrandes, con unos resultados superiores de Intel (me-joras de rendimiento del 18% respecto a Sun y de casiel 40 % respecto a GCC), Sun en un punto interme-dio, y GCC como el peor de los tres compiladores.Al igual que en 32 bits, Intel obtiene el mejor ren-dimiento en los mismos 16 benchmarks, repitiendosus mayores diferencias en 410.bwaves, 434.zeusmp,435.gromacs, 436.cactusADM y 481.wrf.

A diferencia de lo que ocurría con el conjunto debenchmarks de números enteros, en los que, sobrela misma máquina, se obtenían peores resultados en

64 bits que en 32 bits, aquí ocurre todo lo contrario.Como puede verse en la figura 2.b, todos los compila-dores mejoran ostensiblemente su rendimiento sobreun sistema operativo de 64 bits que sobre uno de 32bits, logrando mejoras de hasta el 24.6%, como es elcaso de los compiladores GCC. La menor diferenciase da en los compiladores de Intel, con una mejoradel 9.24 %.

En la máquina SUT2 (figura 2.c), estas diferenciasentre los compiladores se reducen bastante, aunqueIntel sigue ofreciendo un mejor rendimiento que losotros compiladores. A nivel individual, sin embargo,la situación cambia ligeramente. Intel obtiene el me-jor resultado en siete de los 17 benchmarks, de mane-ra que su dominio ya no es tan claro. Aunque sigueobteniendo unos resultados por encima al resto enbenchmarks como el 436.cactusADM, el 453.povrayo el 481.wrf, en el resto de los benchmarks no obtie-ne tanta diferencia de rendimiento, quedando inclu-so por debajo de los compiladores de Sun en seis delos benchmarks, aunque Sun no obtiene un resultadoque destaque por encima en ninguno de esos bench-marks. Y como viene siendo la tónica en todas lascomparativas, salvo raras excepciones, los compila-dores de GCC vuelven a quedarse por detrás de loscompiladores de Intel y Sun, si bien las diferenciasson menores que en anteriores: 21.3% respecto a In-tel y 16.3% respecto a Sun. Y como ya ocurría antes,GCC mantiene su bajo rendimiento en benchmarkscomo 410.bwaves, 436.cactusADM o 454.povray.

En cuanto a la opción de autoparalelización de loscompiladores de Intel y Sun (figura 2.d), es en elconjunto de los benchmarks en punto flotante donderealmente se notan las diferencias entre los meca-nismos secuenciales y de paralelización automática.Si se considera únicamente el rendimiento global detodos los benchmarks se observa una gran similitudentre ambos conjuntos de compiladores, con una di-ferencia muy pequeña a favor de Intel. Sin embargo,analizando uno a uno los resultados de los bench-marks se pone de manifiesto que esta igualdad essólo aparente, produciéndose grandes diferencias enaplicaciones individuales. Tal es el caso de los ben-chmarks 410.bwaves, 437.leslie3d o 459.GemsFTDT,donde se producen las mayores diferencias a favorde los compiladores de Sun (de hasta el 81.5 % en elcaso del 437.leslie3d), o de los benchmarks 436.cac-tusADM, 453.povray o 481.wrf, donde son los compi-ladores de Intel los que obtiene el mejor rendimiento(hasta un 41.77% mejor en el caso del 481.wrf).

Las diferencias de rendimiento entre las versionessecuenciales y paralelas de un mismo compilador (fi-guras 2.e y 2.f) sí que resultan, por tanto, significa-tivas. Intel obtiene un beneficio del 17.5%, mientrasque Sun logra mejorar sus resultados algo más, un21.5 %. En ambos conjuntos de compiladores se ob-serva que los tres benchmarks que obtienen un mayorincremento de rendimiento al ser compilados con laopción de autoparalelización son el 410.bwaves (un116% en Intel y un 140 % en Sun), el 436.cactu-sADM (un 216 % en Intel y un 254 % en Sun) y el

320 XIX Jornadas de Paralelismo

Page 8: JORNADAS DE PARALELISMO - infor.uva.esdiego/docs/aldea08-published.pdf · los objetivos o presupuesto, y si realmente es nece-sario adquirir software comercial para obtener unos mejores

Fig. 2Resultados del conjunto de benchmarks CFP2006

459.GemsFTDT (un 63% en Intel y un 76.9% enSun). El resto de los benchmarks obtienen mejorasmenores bajo los compiladores de Intel y de Sun. Al-gunos benchmarks incluso pierden rendimiento al serparalelizados, siendo los principales perjudicados el

454.calculix y el 465.tonto en ambos casos. Sin em-bargo, los compiladores de Sun son capaces de para-lelizar aún más alguno de los benchmarks restantes,como el caso el 437.leslie3d, donde el compilador For-tran de Sun es capaz de obtener una mejora de casi

Castellon, Septiembre 2008 321

Page 9: JORNADAS DE PARALELISMO - infor.uva.esdiego/docs/aldea08-published.pdf · los objetivos o presupuesto, y si realmente es nece-sario adquirir software comercial para obtener unos mejores

el 100% con cuatro procesadores.

VI. Conclusiones

Este trabajo busca ofrecer una visión más clara delas diferencias existentes entre los principales compi-ladores existentes en el mercado para arquitecturasIntel: GCC, Intel y Sun. El estudio tiene dos par-tes claras, correspondientes a los dos tipos de ben-chmarks, CINT2006 y CFP2006, no sólo por las di-ferencias entre ellos sino también por los resultadosobtenidos.

Por un lado, en el conjunto de benchmarks de nú-meros enteros, el compilador que obtiene un mejorrendimiento de las aplicaciones es Sun Studio 12, ob-teniendo mejores resultados en la mayoría de los ca-sos analizados, justo por delante de Intel y GCC, quequeda rezagado al último lugar. Sin embargo, a pe-sar de encontrarse por encima, las diferencias entreestos compiladores y los de Intel o GCC son peque-ñas como para resultar especialmente significativas,al igual que lo que ocurre al comparar las versionessecuenciales y paralelas de las distinstas aplicaciones.En el caso de CINT2006, como ha podido verse, nose obtiene beneficio al intentar paralelizar automáti-camente su código.

En el conjunto de benchmarks de punto flotante,por el contrario, es donde se obtienen las diferenciasmás significativas de rendimiento entre las aplicacio-nes compiladas por un u otro compilador. Aquí, elque genera mejores resultados es Intel y su conjuntode compiladores, que obtienen rendimientos muy porencima en la mayoría de los análisis. Donde se igualamás la situación es al activar la opción de autopara-lelización, quedando descartados los compiladores deGCC al no disponer de este mecanismo. La opción deautoparalelización permite obtener una mejora apre-ciable en la ejecución de los benchmarks, por lo quemerece la pena utilizar esta opción si se dispone dela plataforma adecuada.

Además de los resultados generales, cabe tambiéndestacar el hecho de que las mejoras no son uniformesde una aplicación a otra, como puede verse en el bajorendimiento del compilador Intel con el benchmark462.libquantum de 64 bits, o el buen resultado deGCC con 464.h264ref sobre el SUT2. Por lo tanto, lasconclusiones de este estudio no pueden generalizarsea todas las aplicaciones de un determinado lenguaje.Este hecho obliga al programador que desee elegirentre uno de estos compiladores a realizar medicionessobre su propia aplicación y arquitectura.

Con todas estas puntualizaciones, es justo concluirque la mejor opción en la compilación del SPEC2006son los compiladores de Intel, que mantiene un muybuen rendimiento en líneas generales. Por detrás sesituaría Sun Studio 12, que es ligeramente mejorque Intel en CINT2006 aunque claramente peor enCFP2006, y con un rendimiento similar en las opcio-nes de autoparalelización. Por último, es de destacarel mal resultado de los compiladores GCC, que nosólo se encuentran por detrás de los otros dos en to-dos los casos, sino que tampoco puede competir con

ellos cuando se requiere paralelizar automáticamenteel código al no disponer de dicha opción.

Agradecimientos

Este trabajo ha sido parcialmente financiado a tra-vés del Ministerio de Educación y Ciencia (TIN2007-62302), del Ministerio de Industria (FIT-350101-2006-46 y FIT-350101-2007-27) y de la Junta de Cas-tilla y León.

Referencias[1] Ken Polsson, “Chronology of workstation compu-

ters”, http://www.islandnet.com/~kpolsson/workstat/work1987.htm.

[2] Standard Performance Evaluation Corporation, “SPECreleases CPU2006 benchmarks”, http://www.spec.org/cpu2006/press/release.html.

[3] Intel Corporation, “Intel Xeon Processor perfor-mance summary”, http://www.intel.com/performance/workstation/xeon/summary.htm.

[4] IBM Corporation, “IBM posts SPEC CPU2006 sco-res for next-generation System x scalable server”,ftp://ftp.software.ibm.com/eserver/benchmarks/news/newsblurb_x3850M2_speccpu_090507.pdf.

[5] Sun Microsystems, “Sun Fire X4450 server performance”,http://www.sun.com/servers/x64/x4450/benchmarks.jsp?display=1.

[6] Vijay Tatkar, “Build high performance applicationson multicore systems using sun studio compilers andtools”, http://developers.sun.com/events/techdays/presentations/locations-2008/india_techdays/solaris_track/td_hyd_sun_studio_tatkar.pdf.

[7] Fujitsu Siemens, “Performance and bench-marks: Performance reports for CELSIUS R640”,http://www.fujitsu-siemens.com/products/deskbound/workstations/performance/celsius_r640.html.

[8] Robert Munafo, “Reference machine times forSPEC CPU2006”, http://home.earthlink.net/~mrob/pub/benchmarks/spec.html#ref_06.

322 XIX Jornadas de Paralelismo