scieee Science in your language
[es] (orig)

Estudio del rendimiento y la escalabilidad de aplicaciones MPI en entornos distribuidos utilizando SIMCAN

Abstract

Este proyecto tiene como objetivo representar el comportamiento de aplicaciones MPI en entornos distribuidos simulados. En concreto, los entornos se representarán en la plataforma de simulación SIMCAN, una plataforma para modelar y simular entornos y aplicaciones distribuidas. Las aplicaciones MPI son programas que trasmiten mensajes entre varios procesos las cuales pueden ser ejecutados en una o varias máquinas, consiguiendo ejecutar y procesar datos de forma paralela. Para lograr el objetivo propuesto, las aplicaciones MPI se procesan en 3 Fases principales. La primera Fase consiste en el desarrollo de una biblioteca en lenguaje C con la que se genera un fichero de registro que contiene todas las llamadas MPI y de E/S ejecutadas por cada proceso. La segunda Fase consiste en integrar en SIMCAN el registro obtenido en la Fase anterior. Esto permitirá simular la aplicación MPI en distintos tipos de entornos distribuidos. Como resultado se genera un nuevo fichero de registro. La tercera Fase procesa uno o varios ficheros generados en las Fases anteriores y representa gráficamente la ejecución de la aplicación MPI. Con la representación obtenida es posible estudiar de forma detallada las ejecuciones de los programas MPI. Es importante destacar que así se puede comparar el comportamiento de la aplicación, ejecutada en entornos reales, con la ejecución de la misma aplicación en entornos simulados utilizando distintas configuraciones.

Read accessible full text

Estudio del rendimiento y la escalabilidad de aplicaciones MPI en entornos distribuidos utilizando SIMCAN

Author: Vaca Vargas, Bryan Raúl
Year: 2018
Source: https://docta.ucm.es/bitstreams/9f0ce555-127e-4623-a5fe-39b25ba2eb00/download
Es udio del endimien o y la escalabilidad de aplicaciones
MPI en en o nos dis ibuidos u ilizando SIMCAN
T abajo de Fin de G ado
G ado en Ingenie ía de Compu ado es!
Facul ad de In o má ica
Uni e sidad Complu ense de Mad id!
2017/2018!
B yan Raúl Vaca Va gas!
Di igido po :
Albe o Nuñez Co a ubias!
2
3
Ag adecimien os!
A mi amilia, po apoya me en es os úl imos años y sob e odo en es os úl imos meses en los que
la p esión y la exigencia han sido no ables. Sin ellos es o no hab ía sido posible.!
A mi pa eja, la cual me ha ayudado a a on a odos los baches que han apa ecido al lo la go del
desa ollo de es e p oyec o.!
A mi di ec o Albe o, po que a pesa de odos los incon enien es su gidos, ha es ado siemp e
pa a ayuda me y guia me hacia la di ección adecuada.!
A mis amigos, po que ellos ambién han i ido a mi lado los momen os di íciles del desa ollo de
es e p oyec o.!
Muchas g acias a odos. !
4
5
Resumen!
Es e p oyec o iene como obje i o ep esen a el compo amien o de aplicaciones MPI en
en o nos dis ibuidos simulados. En conc e o, los en o nos se ep esen a án en la pla a o ma de
simulación SIMCAN, una pla a o ma pa a modela y simula en o nos y aplicaciones dis ibuidas.!
Las aplicaciones MPI son p og amas que asmi en mensajes en e a ios p ocesos las cuales
pueden se ejecu ados en una o a ias máquinas, consiguiendo ejecu a y p ocesa da os de
o ma pa alela. !
Pa a log a el obje i o p opues o, las aplicaciones MPI se p ocesan en 3 Fases p incipales. La
p ime a Fase consis e en el desa ollo de una biblio eca en lenguaje C con la que se gene a un
iche o de egis o que con iene odas las llamadas MPI y de E/S ejecu adas po cada p oceso.
La segunda Fase consis e en in eg a en SIMCAN el egis o ob enido en la Fase an e io . Es o
pe mi i á simula la aplicación MPI en dis in os ipos de en o nos dis ibuidos. Como esul ado se
gene a un nue o iche o de egis o. La e ce a Fase p ocesa uno o a ios iche os gene ados en
las Fases an e io es y ep esen a g á icamen e la ejecución de la aplicación MPI. Con la
ep esen ación ob enida es posible es udia de o ma de allada las ejecuciones de los p og amas
MPI. Es impo an e des aca que así se puede compa a el compo amien o de la aplicación,
ejecu ada en en o nos eales, con la ejecución de la misma aplicación en en o nos simulados
u ilizando dis in as con igu aciones.!
Palab as cla e: Sis emas dis ibuidos, Compu ación dis ibuida, MPI, SIMCAN, Ejecución
pa alela, Simulación de sis emas dis ibuidos.!

6
7
Abs ac !
This p ojec aims o ep esen he beha iou o MPI applica ions in dis ibu ed simula ed
en i onmen s. Speci ically, he modeled en i onmen s will be ep esen ed in he SIMCAN
simula ion pla o m.
MPI applica ions a e p og ams ha ansmi messages among a numbe o p ocesses,
which can be execu ed in one o a ious machines. This enables he applica ion o
execu e and p ocess da a in pa allel.
SIMCAN is a pla o m used o modelling and simula ing dis ibu ed sys ems and
applica ions.
In o de o achie e his objec i e, he MPI applica ions will be p ocess in 3 main phases.
The i s phase, consis s in de eloping a lib a y in language C. This will gene a e a egis e
ile ha con ains all MPI and E/S calls execu ed by each p ocess. The second phase
consis s in in eg a ing he egis e ile gene a ed in he i s phase in o SIMCAN. This will
enable he simula ion o he MPI applica ion in di e en ypes o dis ibu ed en i onmen s.
As a esul , his will gene a e a new egis e ile. !The hi d phase will p ocess one o mo e
gene a ed iles om he p e ious phases and will hen ep esen g aphically he execu ion
o he MPI applica ions. The ob ained ep esen a ion makes i possible o s udy he
execu ions o he MPI p og ams in de ail. I is impo an o highligh ha his enables he
compa ison o he beha iou o he execu ed applica ion in eal en i onmen s wi h he
execu ion o he same applica ion in simula ed en i onmen s.
Keywo ds: Dis ibu ed Sys ems, Dis ibu ed Compu ing, MPI, SIMCAN, Pa allel compu ing,
Simula ion o dis ibu ed sys ems.!
8
9
Indice!
1. In oducción#11!
1.1.Obje i os#11!
1.2.Alcance y mo i ación#11!
1.3.Plan de abajo#11!
1.4.Es uc u a #13!
1. In oduc ion#15!
1.1.Goals#15!
1.2.Scope y mo i a ion#15!
1.3.Wo kplan#15!
1.4.S uc u e#16!
2. Es ado del A e#17!
2.1.MPI#17!
2.2.MPE#18!
2.3.Simulación de p ocesos dis ibuidos en en o nos i uales#18!
2.3.1.SIMCAN#18!
2.3.2.SIMGRID#19!
3. Es uc u a del p oyec o#21!
3.1.In oducción#21!
3.2.Fase 1: Biblio eca pa a gene a azas de aplicaciones MPI#22!
3.2.1.Funciones de ges ión de llamadas#23!
3.2.2.Llamadas de E/S#24!
3.2.3.Llamadas MPI#27!
3.2.4.Es uc u a de da os pa a el egis o de a eas#30!
3.2.5.Fiche o egis o ob enido#31!
3.2.6.Ejemplo #32!
3.3.Fase 2: In eg ación con SIMCAN#33!
3.4.Fase 3: Rep esen ación g á ica del compo amien o de aplicaciones MPI#36!
3.4.1.P ocesamien o de los da os de en ada#36!
3.4.2.Funcionalidades#37!
3.4.2.1.Ca ga de aplicaciones MPI#37!
3.4.2.2.Compilado de p og ama MPI#38!
3.4.2.3.Ejecución de p og ama MPI#39!
3.4.2.4.Ca ga de en o no SIMCAN#40!
3.4.2.5.Ejecución de en o no de simulación SIMCAN#41!
3.4.3.Diseño de la in e az#41!
3.4.4.Gene ación de g á ico#43!
16
analysis o he p oblem, he planning and es ablishing he wo k plan, equi es abou a week
o wo k.!
•The second s age, which co esponds o he i s seconda y objec i e, is o de elop a lib a y
ha eco ds he calls in oked by he applica ion. Figu e 1.1 and 1.2 show he cou se o his
s age in which one week is dedica ed o design, wo weeks o de elopmen , one week o
es s and documen a ion, and se e al weeks o necessa y adap a ions, which a ise when
de eloping he ollowing objec i es . The de elopmen o his lib a y allows analyzing he
equi emen s o bo h he hi d and he ou h s age.!
•The hi d s age, which co esponds o he second seconda y objec i e, consis s o knowing
in de ail he SIMCAN implemen a ion and adap ing his simula o wi h he objec i e o
simula ing he MPI applica ions execu ed in he second s age. Figu e 1.2 shows ha he
du a ion o his s age is mo e han 3 weeks in which hal a week is dedica ed o knowing he
applica ion, mo e han a week o de elopmen and a week o es s. The documen a ion o
his s age is ca ied ou in he las week o he p ojec .!
•The ou h s age, which co esponds o he hi d seconda y objec i e, consis s in he
de elopmen o an applica ion in which all he de eloped s ages a e uni ied his is
necessa y o p oduce a g aphic ep esen a ions om he execu ion o an MPI applica ion in
a simula ed en i onmen in SIMCAN. I is obse ed in igu e 1.2 ha he du a ion o his
s age is i e weeks. In he i s week he equi emen s a e analyzed and he applica ion is
designed, he nex wo weeks a e dedica ed o he de elopmen o he applica ion, a week
o es s and adap a ions, and he las week o documen a ion.!
•The las s age consis s in ca ying ou expe imen s wi h which o demons a e he usabili y
o he applica ion de eloped in he ou h s age. I is obse ed in igu e 1.2 ha he du a ion
o his s age is one week.!
1.4.S uc u e
This documen is di ided in o he ollowing chap e s:
•#Chap e 1. The chap e in oduces he objec i es, scope and mo i a ion.!
•#Chap e 2. The second chap e exposes he cu en s a e o he echnologies used in he
p ojec and he echnologies simila o hose de eloped in he p ojec .!
•#Chap e 3. The hi d chap e de ails he p ocess o p ojec de elopmen , explaining each
phase in de ail.!
•#Chap e 4. The ou h chap e shows he expe imen s ca ied ou .!
•#Chap e 5 . The i h chap e desc ibes he conclusions eached a e he de elopmen o
he p ojec and exposes he possible u u e wo k o he p ojec .!

17
2. Es ado del A e
En es e capí ulo se de inen las p incipales ecnologías usadas en es e p oyec o así como
ecnologías exis en es en el ámbi o en el cual se enma ca es e p oyec o.!
2.1.MPI
La necesidad de mejo a los iempos de ejecución de las aplicaciones MPI o epa i a eas pa a
e i a sob eca ga la memo ia en un compu ado , gene a la necesidad de pa aleliza a eas, an o
a ni el so wa e como a ni el ha dwa e.!
El obje i o p incipal de la p og amación pa alela es consegui una ca ga equi a i a en e los
p ocesos, minimiza la comunicación en e ellos y al e na comunicación y ejecución.!
Uno de los mé odos u ilizados pa a consegui ese pa alelismo es el uso de la biblio eca MPI
(Message Passing In e ace). En esencia, es a biblio eca ges iona la ans e encia de da os en e
a ios p ocesos.!
MPI ue desa ollado po el MPI_FORUM, el cual es aba compues o po ap oximadamen e
sesen a pe sonas y cua en a o ganizaciones. !
En 1994 se de ine el MPI-1 S anda , el cual especi ica las sub u inas y unciones que se usa ían
en Fo an 77 y en C, espec i amen e. Lo que se buscaba p incipalmen e e a pode compila y
ejecu a es os p og amas desde cualquie pla a o ma.!
Seguidamen e se de inió MPI-2 S anda . Lo que hace es e es ánda es inclui he amien as pa a
la E/S pa alela, la ges ión de p ocesos dinámicos y compa ibilidad con C++ y Fo an 90.!
Pa a maneja el pa alelismo disponemos de dos ipos de a qui ec u as. Po una pa e la
a qui ec u a de memo ia dis ibuida y, po o a, la a qui ec u a de memo ia compa ida.!
La a qui ec u a de memo ia dis ibuida se compone de a ios compu ado es (nodos) que abajan
jun os pa a esol e un p oblema. Cada nodo iene acceso a su p opia memo ia de al o ma que
cuando es necesa io accede a in o mación alojada en memo ia de o os nodos, se es ablece
comunicación a a és de la ed e in e cambian mensajes.!
En una a qui ec u a de memo ia compa ida, múl iples p ocesado es acceden a la memo ia a
a és de un BUS de al a elocidad. El p oblema de es a a qui ec u a son los cuellos de bo ella en
el acceso a la memo ia, además del núme o limi ado de unidades de cómpu o.!
Exis en ambién a qui ec u as como la DSM (Dis ibu ed Sha ed Memo y) que implemen a el
modelo de memo ia compa ida, pe o en sis emas dis ibuidos. !
Los obje i os p incipales de MPI son p o ee po abilidad y e iciencia en odas las pla a o mas.!
La biblio eca MPI se di ide en cua o ipo de llamadas:!
•Llamadas usadas pa a inicializa , ges iona y e mina comunicaciones. Se enca gan de
inicializa comunicaciones, iden i ica el núme o de p ocesos usados y el p oceso conc e o
que es á llamando a las uncionalidades disponibles.!
•Llamadas usadas pa a comunica en e pa es de p ocesos. Ope aciones de en ío y
ecepción de mensajes.!
18
•Llamadas enca gadas de ges iona las comunicaciones. P o een ope aciones de
sinc onización, de a amien o de es uc u as de da os complejas y ope aciones de
comunicación en e g upos de p ocesos.!
•Llamadas usadas pa a c ea cualquie ipo de da os, con lo que se consigue pode hace
uso de es uc u as de da os p opias.!
Las dis ibuciones más ecien es se encuen an disponible en: !
•h ps://www.open-mpi.o g/ !
•h p://lam-mpi.miscellaneousmi o .o g!
•h ps://www.mpich.o g!
2.2.MPE
MPE es una aplicación des inada a p og amado es de aplicaciones MPI, la cual p opo ciona
dis in as he amien as con las que se ecopila el compo amien o del p og ama MPI ejecu ado. A
pa i de es a ejecución se cons uye un egis o pa a pode gene a la isualización
co espondien e. Es a aplicación es compa ible con las implemen ación MPICH y OpenMPI.!
Exis en a ias e siones de MPE, la p ime a ue desa ollada pa a sis emas compa ibles con X-
Windows, un e minal g á ico i ual. T as es a p ime a e sión, debido a su di icul ad de
man enimien o y escalabilidad, se eesc ibe en lenguaje de Sc ip ing TeL u ilizando paque es
g á icos Tk. El incon enien e de es a e sión e a la len i ud a la ho a de p ocesa g andes
ejecuciones. Po ello se uel e a desa olla la pa e g á ica de la aplicación, es a ez en C,
usando la in e az C de Tel. Es e cambio mejo ó el endimien o, pe o gene ó dependencia con una
pa e ines able de Tel. Es e úl imo p oblema conlle ó a una nue a mejo a: el desa ollo de la
aplicación g á ica en Ja a. Exis en 4 e siones de es a implemen ación. Es as ul imas e siones
mejo an no ablemen e el endimien o, po abilidad y man enimien o y añadiendo nue as
uncionalidades g á icas. !
La dis ibución mas ecien e de MPE es á disponible en: h p://www.mcs.anl.go / esea ch/
p ojec s/pe is/download/index.h m !
2.3.Simulación de p ocesos dis ibuidos en en o nos
i uales
Ac ualmen e exis en a ias dis ibuciones so wa e que simulan ejecuciones de p ocesos
dis ibuidos. Es el caso de SIMGRID y SIMCAN, en e o as.!
2.3.1.SIMCAN
SIMCAN es una simulado de aplicaciones y en o nos dis ibuidos. Es á p og amado en C++ y
u iliza Omne INE. Es e simulado pe mi e modela en o nos dis ibuidos. La p ime a e sión de
19
SIMCAN se desa ollo con ines de in es igación sin emba go, la aplicación se ha adap ado pa a
su uso en la enseñanza.!
SIMCAN dispone de dis in os ipos de componen es con dis in as ca ac e ís icas, CPUs,
Memo ias RAM, Discos Du os, Redes. La combinación de es os componen es dan luga a una
g an can idad de sis emas modelos.!
El obje i o p incipal de SIMCAN es la eu ilización de componen es. Po o a pa e se busca un
al o ni el de lexibilidad y escalabilidad, acili a el desa ollo de aplicaciones dis ibuidas al
p opo ciona APIs in ui i as y po úl imo pe mi e in es iga el endimien o de las aplicaciones
dis ibuidas con dis in os ipos de con igu aciones.!
Pa a modela un sis ema dis ibuido es necesa io modela an o la pa e So wa e como la pa e
Ha dwa e.!
En el apa ado Ha dwa e encon amos las máquinas ísicas, llamados nodos que son los
enca gados de ealiza a eas de compu o y del almacenamien o. Es os nodos en conjun o
o man un Racks.!
En el apa ado So wa e se es ablecen p o ocolos de comunicación, sis emas de iche os, y las
aplicaciones dis ibuidas y pa alelas MPI. Es posible modela aplicaciones API simila es a POSIX
y aplicaciones dis ibuidas MPI.!
La e sión más ecien e de SIMCAN es á disponible en: !
•h p://an a es.sip.ucm.es/cana/simcan/index.h ml !
2.3.2.SIMGRID
SIMGRID es un conjun o de he amien as u ilizado pa a es udia el compo amien o de sis emas
dis ibuidos. Des aca po su po abilidad, escalabilidad y endimien o.!
Funciona en cualquie sis ema ope a i o y es capaz de simula aplicaciones esc i as en C, C++ y
Ja a. P oduce da os que pueden se isualizados g á icamen e.!
Se a a de una aplicación ampliamen e u ilizada, bajo licencia lib e, y que es u ilizada po el
CERN ('O ganización Eu opea pa a la In es igación Nuclea ) pa a mejo a los algo i mos de
ges ión de da o.!
Sus desa ollado es denominan SIMGRID como una biblio eca, con la que es posible in e ac ua
a a és de p og amas que hacen uso de las uncionalidades disponibles en la biblio eca.!
Se compone p incipalmen e de una aplicación desa ollada po el usua io, una pla a o ma i ual
que desc ibe en o ma o xml, un sis ema dis ibuido, una desc ipción de implemen ación
de allando como se a a ejecu a la aplicación en cada componen e de la a qui ec u a desc i a en
la pla a o ma i ual y po úl imo modelos de pla a o ma en los que es necesa io especi ica cómo
eacciona el sis ema dis ibuido a las acciones llamadas po la aplicación.!
La combinación de odos es os componen es dan luga a las simulaciones, y es as gene an
esul ados que pe mi en compa a aplicaciones, depu a aplicaciones eales o pa a diseña una
sis ema dis ibuido ideal pa a una aplicación especí ica.!
20
La e sión más ecien e de SIMGRID es á disponible en: !
•h p://simg id.g o ge.in ia. /!
21
3. Es uc u a del p oyec o
En es e capí ulo se desc ibe en de alle la p opues a de es e T abajo de Fin de G ado, el
anscu so del desa ollo y los de alles de cada Fase. !
3.1.In oducción
La p opues a de es e p oyec o consis e en 3 Fases de desa ollo. Cada Fase se cen a en una
pa e so wa e.!
En la p ime a Fase se lle a a cabo el desa ollo de una biblio eca, enca gada de egis a un
subconjun o de llamadas MPI y llamadas E/S de la biblio eca es ánda de C. Pa a es a Fase se
hace uso de lenguaje C. Como emos en la igu a 3.1, la aplicación o iginal se ans o ma pa a
in oca a las unciones de la biblio eca c eada. Una ez ans o mada, se compila enlazándola
con la biblio eca, lo que gene a un ejecu able. Al ejecu a la aplicación, es a gene a a ios
iche os, uno po cada p oceso ejecu ado, que son in eg ados en un mismo iche o. Es a aza
gene ada puede se in oducido en SIMCAN pa a simula la en un en o no dis ibuido p e iamen e
modelado o puede se añadida a la aplicación desa ollada en la Fase 3 y se ep esen ada
g á icamen e.!
En la segunda Fase se desa olla una aplicación en SIMCAN. Como emos en la igu a 3.1,
p incipalmen e, es a aplicación lee una aza de un iche o (gene ado en la Fase 1) y la ep oduce
en el simulado . La ejecución de es a aplicación da á luga a un iche o de egis o que
pos e io men e se á leído y a ado en la Fase 3.!
En la e ce a Fase se desa olla la aplicación g á ica. Básicamen e, es a aplicación ep esen a á
g á icamen e el compo amien o de las aplicaciones MPI. Como emos en la igu a 3.1 la
aplicación puede ep esen a an o los esul ados de la Fase 1, como los esul ados ob enidos de
la Fase 2. Pa a desa olla es a aplicación se hace uso de di e sas ecnologías como Ne beans,
Eclipse, Ja a, Bash, Ma en y Json.%
Figu a 3.1 Es uc u a del p oyec o!

22
3.2.Fase 1: Biblio eca pa a gene a azas de aplicaciones
MPI
La p ime a Fase consis e en desa olla una biblio eca aceLib, enca gada de egis a las
llamadas MPI y de E/S in ocadas po cualquie p og ama que haga uso de MPI. De es a o ma se
gene a un iche o en el que se egis a la in o mación necesa ia pa a pode ep oduci el
compo amien o de la aplicación en SIMCAN.!
La impo ancia de es a p ime a Fase adica en la necesidad de ob ene da os ele an es y
comple os de la ejecución de una aplicación MPI, eniendo en cuen a que se busca pode
es udia de alladamen e el compo amien o de es as ejecuciones.!
Con el in de acili a la desc ipción de las Fases p esen adas en es e capí ulo, de allamos el
signi icado de algunos de los é minos u ilizados. Denominamos ank al ID del p oceso que
in oca las llamadas, es e puede se wo ke o mas e . Denominamos wo ke a un p oceso que
ecibe mensajes de un mas e pa a ealiza un de e minado abajo. Denominamos mas e al
p oceso p incipal enca gado de dis ibui abajos en e los p ocesos wo ke s.!
Pa a desa olla la biblio eca p opues a, se ha u ilizado una es uc u a homogénea, a pesa de
que cada llamada enga signa u as di e en es. Es el caso, po ejemplo, de las llamadas más
simples como pueden se :!
open(cons cha *pa h, in o lag) !
A o as más complejas como pueden se : !
MPI_Rec ( oid* mensaje, in coun , MPI_Da a ype ipo_de_da o , in emiso , in e ique a, MPI_Comm comunicado ,
MPI_S a us* es ado).!
Po ello, odas las llamadas con empladas en la biblio eca desa ollada end án la siguien e
sin axis:!
ypeRe u n nameFunc ion_ ace( [pa áme os p opios de la llamada], cons in myRank).!
donde:!
• ypeRe u n es el ipo de alo de uel o po la unción, siemp e se á el mismo que el de la
unción in ocada o iginal.!
•nameFunc ion_ ace es el nomb e de la llamada de la biblio eca. Se compone po el nomb e
de la llamada o iginal y la adición del su ijo “_ ace”.!
•[pa áme os p opios de la llamada] sos pa áme os se án los mismos que los usados en la
llamada o iginal in ocada.!
•myRank: Rank del p oceso que in oca la llamada.!
A con inuación de alla emos las llamadas implemen adas en la biblio eca.%
23
3.2.1.Funciones de ges ión de llamadas
En es a sección se desc iben las unciones in e nas de la biblio eca que ges ionan las llamadas
de los p ocesos a cada una de las unciones MPI y E/S.!
 !
Es as unciones son las enca gadas de calcula el inicio y el inal de una a ea. Po cada llamada
in ocada po un p oceso se gene an las pa es de la a ea (inicio y in) pa a pos e io men e
añadi las al lis ado de a eas que se uelcan al iche o de egis o. Cada ez que se in oca una
llamada de la biblio eca aceLib, se llama a una de las unciones, p opo cionándole los
pa áme os necesa ios, donde:!
•name es el nomb e de la unción in ocada.!
•pa h es el nomb e del iche o c eado, abie o, leído, esc i o o ce ado. Solo p esen e en la
unción addTaskFileIn o.!
• Ini es la ma ca de iempo inicial. Ins an e p e io a la in ocación de la llamada o iginal.!
• End es la ma ca de iempo inal. Ins an e pos e io a la in ocación de la llamada o iginal.!
• ankSou ce es el iden i icado del p oceso emiso y/o del p oceso que in oca la llamada.!
• ankDes es el iden i icado del p oceso ecep o y/o del p oceso que in oca la llamada.!
•da aSize es el amaño de da os leídos, esc i os o ansmi idos.!
•offse es el desplazamien o en iche o en ope aciones de lec u a o esc i u a. Solo p esen e
en la unción addTaskFileIn o.!
 !
La unción eaceIni , se ejecu a al in oca a la unción MPI_Ini _ ace, se enca ga de inicializa y
ese a espacio pa a las es uc u as de da os ela i as a las a eas, inicializa el con ado de Ids
pa a las a eas y egis a la ma ca de iempo inicial ela i a al Wo ke que lo ejecu a.!
 !
La unción aceEnd se ejecu a al in oca a la unción MPI_Finalize_ ace y se enca ga de olca al
iche o asociado a su p oceso, odas las llamadas cap u adas p e iamen e. Cada p oceso
in oca á a MPI_Finalize_ ace gene ando un iche o de egis o asociado a su ank.!
oid addTaskIn o(cha *name, s uc ime al * Ini, s uc ime al * End,
in ankSou ce, in ankDes , in da aSize);
oid addTaskFileIn o(cons cha *name, cons cha *pa h,
s uc ime al * Ini, s uc ime al * End,
in my_ ank, in ank_ds _s c, in da aSize,
in o se );
oid aceIni ();
oid aceEnd();
24
 !
La unción w i eLis TaskIn o es in ocada desde la unción aceEnd y se enca ga de eco e la
lis a de a eas y olca las al iche o de egis o, donde:!
• ile es el pun e o al desc ip o de iche o de la aza a gene a !
 !
La unción showLis TaskIn o es una llamada u ilizada pa a depu a . Es a llamada mues a las
a eas que se egis an en cada p oceso, donde:!
• un es el pun e o a la a ea ac ual de la que a a mos a su in o mación!
 !
La unción ob ainFileName ob iene el nomb e de un a chi o a pa i de su desc ip o de iche o,
donde:!
• d es el desc ip o del iche o del que se quie e ob ene el nomb e.!
3.2.2.Llamadas de E/S
En es a sección se desc iben las unciones desa olladas de aceLib pa a cap u a y ges iona
las llamadas de E/S!
 !
Es a unción p ocesa las in ocaciones a c ea de la biblio eca es ánda de C, enca gada de c ea
un iche o, donde:!
•pa h es nomb e del iche o a c ea .!
•mode es el modo de c eación del iche o.!
•myRank es el iden i icado del p oceso que in oca la llamada.!
oid w i eLis TaskIn o(FILE * ile);
oid showLis TaskIn o(s uc askIn o * un);
cha * ob ainFileName(cons in d);
in c ea _ ace(cons cha *pa h, mode_ mode, cons in myRank);
25
 !
Es a unción p ocesa las in ocaciones a open de la biblio eca es ánda de C, enca gada de ab i
un iche o, donde:!
•pa hname es el nomb e del iche o a ab i .!
• lags es el modo de ape u a del iche o.!
•myRank es el iden i icado del p oceso que in oca la llamada.!
 !
Es a unción p ocesa las in ocaciones a open de la biblio eca es ánda de C, enca gada de ab i
un iche o, donde:!
•pa h es el nomb e del iche o a ab i .!
•mode es el modo de ape u a del iche o.!
•myRank es el iden i icado del p oceso que in oca la llamada.!
 !
Es a unción p ocesa las in ocaciones a close de la biblio eca es ánda de C, enca gada de ce a
un iche o, donde:!
• d es el desc ip o de iche o que se a a ce a .!
•myRank es el iden i icado del p oceso que in oca la llamada.!
 !
Es a unción p ocesa las in ocaciones a close de la biblio eca es ánda de C, enca gada de
ce a un iche o, donde:!
•s eam es el desc ip o de iche o que se a a ce a .!
•myRank es el iden i icado del p oceso que in oca la llamada.!
 !
in open_ ace(cons cha *pa hname, in lags, cons in myRank);
FILE * open_ ace(cons cha *pa h, cons cha *mode, cons in myRank);
in close_ ace(in d, cons in myRank);
in close_ ace(FILE *s eam, cons in myRank);
ssize_ ead_ ace(in d, oid *bu , size_ coun , cons in myRank);
32
•Gene a ma cas de iempos independien emen e en cada p oceso conlle a que los iempos
egis ados en cada aza sean ela i os al p oceso, es deci , el iempo inicial en cada
p oceso es dis in o. Po an o las ma cas de iempo son calculadas sob e su ma ca inicial,
es o da luga a un posible o den inco ec o de a eas.!
•El egis o de cada in ocación equie e que cada a ea sólo egis e los da os asociados a
los pa áme os usados en la llamada ac ual, po lo que es necesa io adap a la esc i u a de
cada a ea a dis in as es uc u as de llamadas. En la igu a 3.4 obse amos el egis o de
una in ocación a pw i e,!
 !
donde:!
-El p ime pa áme o es la ma ca de iempo asociada a la a ea.
-El segundo pa áme o es el nomb e asociado a la a ea, an o inicial como inal.!
-El e ce pa áme o ep esen a el Id de la a ea.!
-El cua o pa áme o ep esen a el ank. El iden i icado del p oceso que in oca la
llamada.!
-El quin o pa áme o ep esen a la can idad de da os ansmi idos.!
-El sex o pa áme o ep esen a el offse , el desplazamien o en el iche o esc i o.!
-El sép imo pa áme o ep esen a el nomb e del iche o en el que se esc ibe.!
Al compa a la igu a 3.3 y la igu a 3.4 se obse a que cada in ocación gene a egis os
con sólo los da os necesa ios de cada llamada.!
Teniendo en cuen a los p oblemas su gidos du an e el desa ollo, se ob iene una e sión global
de la aza en la que los da os egis ados ep esen an las llamadas en el mismo o den en que
ue on in ocadas.!
3.2.6.Ejemplo
En la igu a 3.5 podemos obse a la di e encia en e un p og ama MPI y un p og ama MPI que
hace uso de aceLib. Como podemos obse a , las di e encias en a ambas son mínimas. En el
p ime ejemplo emos cómo se añade la biblio eca “ aceLib.h”, las llamadas ienen el su ijo
“_ ace” y la llamada MPI_B oadcas iene un pa áme o añadido, el ank del p oceso que in oca
la llamada.%
0,068015 Ini_pw i 1 0 13 5 salida3. x
0,068027 End_pw i 1 0 13 5 salida3. x
Figu a 3.4!

33
!
La ejecución de es a aplicación con 3 p ocesos, gene a la siguien e aza:!
 !
Donde obse amos la in ocación MPI_B oadcas po pa e de los 3 p ocesos y las a eas es án
o denadas po su ma ca de iempo .!
3.3.Fase 2: In eg ación con SIMCAN
En es a sección se de alla el desa ollo ealizado sob e el simulado SIMCAN. Pa a ello se
explica á b e emen e la a qui ec u a del simulado . En la igu a 3.7 obse amos la a qui ec u a del
SIMCAN. !
!
0.062846 Ini_bcas 0 1 1 0
0.062860 Ini_bcas 0 2 1 0
1.007204 End_bcas 0 0 1 0
1.007254 End_bcas 0 1 1 0
1.007090 Ini_bcas 0 0 1 0
1.007254 End_bcas 0 2 1 0
#include <s dio.h>
#include "mpi.h"
#include " aceLib.h"
#de ine MASTER 0
in main( in a gc, cha **a g ){
in ank, alo , np ocs;
//Inicializamos MPI y ob enemos el ank
MPI_Ini _ ace(&a gc, &a g );
MPI_Comm_size_ ace(MPI_COMM_WORLD, &np ocs);
MPI_Comm_ ank_ ace( MPI_COMM_WORLD, & ank);
// P oceso Mas e ?
i ( ank == 0){
p in ("In oduce un alo : n”);
scan ( "%d", & alo );
}
// B oadcas del mensaje
MPI_Bcas _ ace(& alo , 1, MPI_INT, MASTER,
MPI_COMM_WORLD, ank);
p in ( "P oceso %d ecibe:[%d] n”, ank, alo );
MPI_Finalize_ ace();
e u n 0;
}
#include <s dio.h>
#include "mpi.h"
#de ine MASTER 0
in main( in a gc, cha **a g ){
in ank, alo , np ocs;
//Inicializamos MPI y ob enemos el ank
MPI_Ini (&a gc, &a g );
MPI_Comm_size(MPI_COMM_WORLD, &np ocs);
MPI_Comm_ ank( MPI_COMM_WORLD, & ank);
// P oceso Mas e ?
i ( ank == 0){
p in ("In oduce un alo : n”);
scan ( "%d", & alo );
}
// B oadcas del mensaje
MPI_Bcas (& alo , 1, MPI_INT,MASTER, MPI_COMM_WORLD);
p in ( "P oceso %d ecibe:[%d] n”, ank, alo );
MPI_Finalize();
e u n 0;
}
Figu a 3.5.1 Aplicación o iginal!
Figu a 3.5.2 Aplicación ans o mada!
34
!
Como se obse a, los componen es necesa ios pa a ejecu a una simulación son:!
•Ope a ing sys em p ocesa las llamadas de cada aplicación y las edi ecciona a la pa e
co espondien e.!
•Ne wo k sys em ep esen a la ed de comunicaciones.!
•S o age sys em ep esen a el sis ema almacenamien o.!
•Compu ing sys em ep esen a el sis ema de cómpu o. Ges iona 1 o a ios p ocesado es.!
•Memo y sys em ep esen a el sis ema de memo ia.!
•API module con iene las llamadas que pe mi en u iliza el ha dwa e del nodo y subsis emas
p incipales!
De o ma de allada, obse amos la a qui ec u a de SIMCAN.!
!
Figu a 3.6 A qui ec u a SIMCAN
Figu a 3.7 A qui ec u a API
35
Como se obse a, la aplicación hace uso di ec o de la API. Es a API iene acceso a los se icios
disponibles, donde cada se icio ha sido p e iamen e modelado con una con igu ación ha dwa e.!
Pa a desa olla la aplicación, es necesa io conoce las llamadas API disponibles. En la igu a 3.8
obse amos es as llamadas.!
 !
T as conoce la a qui ec u a y las llamadas disponibles, se lle a a cabo el desa ollo de la
aplicación MPI.!
Pa a ep oduci el compo amien o de la aplicación MPI , es necesa io:!
•Lee el inicio de la llamada in ocada. Al conoce el ipo de llamada, se elige la llamada a la
API que se a a ejecu a . Cada llamada no solo ep oduce el iempo e ejecución, sino que
ambién calcula el iempo de compu o necesa io pa a ejecu a la llamada.!
•Modi ica las ma cas empo ales de cada a ea. Al lee cada a ea y calcula el iempo de
ejecución, se gene an nue as ma cas de iempo, an o inicial como inal. Es as ma cas, son
olcadas al iche o de aza del p oceso en ejecución. !
•Cada p oceso ep oducido egis a su p opio iche o aza debido a la concu encia
p oducida al in en a egis a odas las a eas de odos los p ocesos a un mismo iche o.
Es e p oblema su gió ambién en la Fase 1 po lo que abo da lo ue una a ea sencilla.!
oid SIMCAN_ eques _c ea e (cons cha * ileName);
oid SIMCAN_ eques _open (cons cha * ileName);
oid SIMCAN_ eques _close (cons cha * ileName);
oid SIMCAN_ eques _ ead (cons cha * ileName, unsigned in o se , unsigned in size);
oid SIMCAN_ eques _w i e (cons cha * ileName, unsigned in o se , unsigned in size);
i ual oid mpi_send (unsigned in p ocID, in bu e Size);
i ual oid mpi_send (SIMCAN_MPI_Message *sm_mpi);
i ual SIMCAN_MPI_Message * mpi_ ec (unsigned in p ocID, in bu e Size);
i ual SIMCAN_MPI_Message * mpi_ ec (unsigned in p ocID, in bu e Size);
i ual oid mpi_bcas (unsigned in oo ID, in bu e Size);
i ual oid mpi_sca e (unsigned in oo ID, in bu e Size);
i ual oid mpi_ga he (unsigned in oo ID, in bu e Size);
Figu a 3.8 Llamadas disponibles a la API de SIMCAN
36
3.4.Fase 3: Rep esen ación g á ica del compo amien o de
aplicaciones MPI
La Fase 3 consis e en el desa ollo de una aplicación enca gada de mos a g á icamen e los
esul ados ob enidos de las ejecuciones MPI, an o las ejecuciones eales gene adas en la Fase 1
como las aplicaciones simuladas de la Fase 2.!
Es a aplicación se ha desa ollado p incipalmen e en lenguaje Ja a y el uso de Sc ip en Bash. Se
ha lle ado a cabo en dis in as Fases.!
3.4.1.P ocesamien o de los da os de en ada
Las azas gene adas en la Fase 1 y 2 ienen el mismo o ma o. La impo ancia de habe elegido
una es uc u a adecuada pa a el egis o de las a eas ejecu adas ayuda no ablemen e en es a
e apa, ya que es el momen o en el que los da os se adap a án y u iliza án pa a gene a el g á ico
que ep esen a el compo amien o de las aplicaciones.!
Los da os leídos se ag upa án de dis in as o mas necesa ias pa a los dis in as uncionalidades
disponibles al mos a el g á ico.!
En p ime luga , se ans o ma la aza ob enida po la ejecución de la aplicación MPI a un o ma o
JSON. Es e o ma o JSON nos pe mi e hace uso de es uc u as de da os ya implemen adas en
Ja a, sencillas y con un endimien o conocido.!
Veamos un ejemplo de como se ans o man es os da os a un o mado JSON.!
El o ma o gene ado es una lis a de obje os de ipo Map. Es e o ma o JSON nos pe mi e ob ene
una es uc u a Lis <Map < S ing , S ing >> haciendo uso de la API Gson y JsonReade , de
modo que el a amien o de es os da os sea sencillo.!
Fo ma o ob enido en la aza en la Fase 1 y 2
Fo ma o gene ado en JSON
0,06791 Ini_ ope 0 0 salida3. x !
0,067933 End_ ope 0 0 salida3. x !
0,068015 Ini_pw i 1 0 13 5 salida3. x !
0,068027 End_pw i 1 0 13 5 salida3. x
[
{
" TaskName " : "Ini_ ope" ,
" Tamaño " : "salida3. x " ,
" Id " : "0" ,
" MyRank " : "0" ,
" TimeS amp " : "0,06791"
} ,
{
" TaskName " : "End_ ope" ,
" Tamaño " : "salida3. x " ,
" Id " : "0" ,
" MyRank " : "0" ,
" TimeS amp " : "0,067933"
} ,
{
" TaskName " : "Ini_pw i" ,
" Tamaño " : "13" ,
" FileName " : "salida3. x " ,
" Id " : "1" ,
" MyRank " : "0" ,
" TimeS amp " : "0,068015"
} ,
{
" TaskName " : "End_pw i" ,
" Tamaño " : "13" ,
" FileName " : "salida3. x " ,
" Id " : "1" ,
" MyRank " : "0" ,
" TimeS amp " : "0,068027"
}
]
37
3.4.2.Funcionalidades
La aplicación se ha desa ollado con el in de uni ica odas las a eas necesa ias pa a simula
p og amas en dis in os en o nos simulados de la mane a más sencilla y anspa en e pa a el
usua io. Cada uncionalidad conlle a una consecución de a eas que, sin la aplicación, da ían
luga a la gos p ocesos y necesi ando a ios comandos pa a llega al esul ado que ob enemos.
Es en es e pun o donde odo el abajo p e io, ealizado en la Fase 1 y Fase 2, se in eg a pa a da
luga a la ep esen ación g á ica de nues os p og amas. A con inuación se de alla á.!
3.4.2.1.Ca ga de aplicaciones MPI
La p ime a uncionalidad que nos encon amos es la ca ga de nues o p og ama MPI
implemen ado con las llamadas a nues a biblio eca T aceLib. !
Al pulsa el bo ón “B owse…”, se mues a una en ana eme gen e, lanzada po chooseFile, en la
que pod emos elegi el p og ama MPI que deseamos ejecu a y simula . Una ez se elige el
iche o, se en ía al Con olado median e con olle .loadMPIFile y és e a su ez al Modelo,
median e model.loadMPIFile. En el modelo, se hace el con ol de e o es. En él se e i ica que la
ex ensión del iche o MPI sea “.c”. Si la comp obación es co ec a se de ol e á un mensaje
indicando el OK de la ope ación y la is a habili a á los bo ones “loaded” y “compile” del menú
median e enableBu onLoadMPI, en caso con a io, la is a ecibe un mensaje de KO que a isa al
con olado del e o y és e de uel e una pe ición a la is a pa a lanza un PopUp con el mo i o
del e o .!
%
Figu a 3.9 Diag ama de secuencia. Ca ga de aplicación MPI!

38
3.4.2.2.Compilado de p og ama MPI
Una ez se ha ca gado el iche o .c, el bo ón “Load” ha pasado a se “Loaded” y el bo ón
“Compile” es habili ado. Es e bo ón es el enca gado de compila el iche o y gene a el ejecu able
con el que se pod á lanza el p og ama.!
Una ez se pulsa el bo ón, una en ana eme gen e nos solici a á el di ec o io y el nomb e del
ejecu able que amos a gene a , con es o pe mi imos al usua io conoce y decidi donde se
gene an los iche os necesa ios pa a la simulación. T as elegi el di ec o io y nomb e, se en ía al
con olado la in o mación median e con olle .compileMPIFile() y és e a su ez llama a
model.compileMPIFile() con la misma in o mación. En el modelo es donde se lle an a cabo las
di e sas a eas que equie e es a uncionalidad.!
En p ime luga se copia la cabece a de la biblio eca, T aceLib.h, en el di ec o io donde se
encuen a el iche o .c que se a a compila . Es o es necesa io ya que al ejecu a el comando de
compilado, no solo es necesa io ene nues o iche o T aceLib.o sino que ambién la cabece a
T aceLib.h debe es a disponible pa a se leída y compilada jun o a nues o iche o MPI. Una ez
se ha copiado, se p ocede a ejecu a el sc ip “compileMPIFile.sh” median e el uso de comandos
Bash. Es e Sc ip puede ecibi ambién, como pa áme o, una biblio eca auxilia si ue a
necesa ia pa a nues o p og ama. Pa a la ejecución de comandos Bash se ha u ilizado una clase
in e media, Command, a la que solo es necesa io pasa el comando y/o el di ec o io de ejecución
pa a que p oceda a ealiza las llamadas necesa ias pa a ejecu a el comando. T as ejecu a el
Sc ip de compilado, si no ha habido e o en la ejecución se p ocede a bo a la cabece a
T aceLib.h del di ec o io donde se copió y se gua da el di ec o io y nomb e del iche o ejecu able
gene ado pa a pos e io men e se ejecu ado.!
Si odo ha ido bien, se en ía un mensaje de OK a la is a que habili a á el bo ón “Execu e” , en
caso con a io, mos a á un PopUp con el mensaje de e o gene ado.%
Figu a 3.10 Diag ama de secuencia. Compilado de aplicación MPI!
39
3.4.2.3.Ejecución de p og ama MPI
T as gene a el iche o ejecu able, el bo ón “Execu e” ha sido ac i ado. Al pulsa es e bo ón, se
lanzan dos en anas eme gen es. Una en la que es necesa io indica el núme o de Wo ke s con
los que se quie e lanza la ejecución del p og ama, y o a en la que es posible in oduci
pa áme os que puedan se necesa ios pa a su ejecución.!
Es os pa áme os son en iados al Con olado median e con olle .execu eMPIFile() que a su ez
los en ía al Modelo median e model.execu eMPIFile().!
En el Modelo es donde lle amos a cabo odos los pasos necesa ios pa a ejecu a nues o
p og ama. En p ime luga se gene a el Sc ip “execu eMPI.sh” pa a lanza la ejecución MPI
Figu a 3.11 Cuad o de dialogo. P ocesos!
Figu a 3.12 Cuad o de dialogo. Pa áme os!
Figu a 3.13 Diag ama de secuencia. Ejecución de aplicación MPI.!
40
eniendo en cuen a los pa áme os ecibidos. En el caso de Wo ke s es obliga o io y los
pa áme os son opcionales, depende de la aplicación ca gada. Una ez enemos odos los
pa áme os lis os, el Sc ip es lanzado. Es a ejecución p oduci á an os iche os “ ace_X. x ”
como wo ke s se han solici ado lanza . Todos los iche o son gene ados en la u a que el usua io
eligió al compila el iche o. !
Si la ejecución ha ido co ec amen e, se lanza el Sc ip “gene a eT ace.sh”. Es e Sc ip es el
enca gado de in eg a odas las azas gene adas po cada Wo ke y o dena las po su ma ca de
iempo asociada a cada a ea. Es e nue o iche o se gua da en el mismo di ec o io donde se
encuen a el ejecu able del p og ama. T as gene a la, se p ocede a bo a las azas espec i as a
cada Wo ke . !
Como ya comen amos en la Fase 1, ha sido necesa io c ea un p og ama que modi ique las
ma cas de iempo de cada a ea elacionando odas a un mismo ins an e inicial. Es e p oceso es
lanzado en es e ins an e, con la aza gene ada como en ada. !
Una ez se ob iene es a aza de ini i a, se gua da el nomb e y di ec o io de es e iche o y se
de uel e un mensaje de OK a la Vis a, a a és del Con olado . En caso de KO se gene a á,
como en an e io es ocasiones, un PopUp con el mensaje de e o asociado. !
La inalización co ec a de es e paso, ac i a á un Flag MPI_Execu ed, que combinado a un Flag
SIMCAN_Execu ed elacionado con la simulación SIMCAN, ac i a á el bo ón “RUN” y “S ep by
S ep” con los que se pod á gene a el g á ico asociado al p og ama y simulación elegidos.!
3.4.2.4.Ca ga de en o no SIMCAN
La ca ga del en o no SIMCAN es simila a la ca ga del p og ama MPI, con la única di e encia del
con ol de e o es, que en es e caso se comp oba á que el iche o sea un ejecu able y se
encuen e en un di ec o io con los iche os SIMCAN necesa ios. En es e caso el bo ón “Load” y
“Simula e” ambién pasa a es a ac i ado!
!
Figu a 3.14 Diag ama de secuencia. Ca ga de en o no SIMCAN.!
41
3.4.2.5.Ejecución de en o no de simulación SIMCAN
Al lanza la ejecución de la simulación, se llama al Con olado median e execu eSIMCAN() y a su
ez se llama a execu eSIMCANSimula ion(), del Modelo. P ime o se copia el iche o de aza,
gene ado po la aplicación MPI, al di ec o io donde se encuen a el ejecu able. T as ello se
ejecu a el Sc ip execu eSIMCAN.sh. T as ejecu a lo se en ía el esul ado de la ope ación a la
Vis a a a és del Con olado . Si la ejecución ha sido co ec a los bo ones “RUN” y “S ep by
S ep” son habili ados y se pod á gene a el g á ico.!
!
3.4.3.Diseño de la in e az
Una de las pa es mas impo an es del desa ollo de es e p oyec o ha sido el diseño de la in e az
g á ica. El diseño de la aplicación busca que los usua ios puedan hace uso de la aplicación de
mane a in ui i a y ápida, ya que es a aplicación p e ende ace ca al alumno a su p opio
desa ollo, es o es, al p og ama que él ha c eado. !
Teniendo en cuen a las necesidades de los alumnos, se han lle ado a cabo dis in os diseños
buscando el mejo esul ado.!
Figu a 3.15 Diag ama de secuencia. Ejecución de simulación.!
48
•Ejecución de aplicación MPI. “execu eMPI.sh“!
Es e Sc ip es el enca gado de ejecu a la aplicación MPI. Recibe el núme o de Wo ke s que se
an a lanza en la ejecución, el iche o “ ile” ejecu able con la aplicación MPI y los pa áme os
necesa ios pa a su ejecución. En el caso de ecibi pa áme os, es os se en ían sepa ados po
comas y son eco idos uno a uno pa a o ma el comando comple o y pode ejecu a la
aplicación. Tan o el núme o de Wo ke s y los pa áme os son solici ados al usua io a a és de la
in e az. !
•Ejecución de en o no SIMCAN!
Es e Sc ip es el enca gado de ejecu a la simulación SIMCAN.%
#!/bin/bash
echo Execu e MPI File
ile=$1 #Name o exec mpi ile
wo ke s=$2 # Num o wo ke s
pa ams=$3 #pa ams
pa hMPI=$4 #Pa h o MPI lib a y
pa amSpli =" "
expo PATH=$PATH:$pa hMPI
o pa am in $(echo $pa ams | "," " n")
do
echo pa am leido: $pa am
pa amSpli =$pa amSpli $pa am
pa amSpli =$pa amSpli " "
done
echo T y execu e MPI MPI ile: $ ile , wo ke s: $wo ke s , pa ams:
$pa amSpli
mpiexec -np $wo ke s $ ile $pa amSpli
#!/bin/bash
echo Execu e SIMCAN
./ un_ elease -u Cmden
echo The simula ion has inished

49
4. Expe imen os
En es a sección se desc iben los expe imen os ealizados u ilizando el sis ema p opues o en es e
p oyec o. Pa a ello se ha u ilizado una aplicación MPI que consis e en il a una imagen de o ma
pa alela. La imagen es abie a y leída po el p oceso Mas e , es a imagen se epa e en e los
Wo ke s. Cada uno il a su po ción de imagen y la uel a a en ia al p oceso Mas e . Po úl imo
el p oceso mas e esc ibe, cada po ción ecibida, en la imagen il ada.!
Cabe des aca que es e p og ama ha sido una de las p ác icas de la asigna u a P og amación de
Sis emas Dis ibuidos, con lo que se quie e demos a su posible uso académico. !
Inicialmen e la aplicación se ha ejecu ado en un o denado con encional pa a ob ene las azas.
En la Figu a 4.1 emos las p es aciones ha dwa e del o denado u ilizado.!
Es as p es aciones ha dwa e se han eplicado en los nodos que componen los en o nos
dis ibuidos simulados que se han modelado.!
Las ejecuciones se han lle ado a cabo con 4, 8 y 16 p ocesos, ob eniendo las azas
co espondien es. Seguidamen e se han modelado dis in os en o nos dis ibuidos u ilizando
SIMCAN. La igu a 4.2 mues a la con igu ación de cada nodo de cómpu o.!
!
!
Mackbook P o Mid 2014
P ocesado : In el Co e i5
Velocidad del p ocesado : 2,6 GHz
Memo ia Ram: 8GB
Almacenamien o: SSD 512GB
Esc i u a: 446 MB/S (3568 Mb/s)
Lec u a: 763 MB/s (6104 Mb/s)
Figu a 4.1 P es aciones ha dwa e Macbook P o!
Figu a 4.2 P es aciones ha dwa e modeladas en SIMCAN!
50
!
La igu a 4.3 mues a una de las con igu aciones del en o no dis ibuido, en es e caso pa a 8
p ocesos. Cada en o no u iliza 3 ipos de edes de o ma que pod emos obse a cómo es as
con igu aciones a ec an al endimien o gene al de la aplicación.!
Las simulaciones se mos a án o denadas, de mayo a meno , po el iempo de ejecución o al,
po lo que, la con igu ación de ed de 10Mb se á la p ime a en se explicada y omada cómo
e e encia has a llega a la ejecución más ápida, en el en o no eal.!
Cabe des aca que, con el in de pode mos a cla amen e los esul ados, la ep esen ación de
las aplicaciones ha sido adap ada. Po ello, la ep esen ación de cada ejecución se aco a a la
anchu a de la en ana de la in e az. Con ello buscamos da una isualización global y cla a de
las ejecuciones y las di e encias en e ellas.!
A modo de acla ación, se de allan los signi icados de cada colo . !
•En colo e de se obse an las ope aciones MPI_Rec .!
•En colo na anja las ope aciones de CPU y de espe a.!
•En colo u quesa la ope ación ead. !
•En g is las ope aciones MPI_Send. !
•En azul las comunicaciones con o igen en el p oceso Mas e . !
•En ucsia las comunicaciones con el p oceso Mas e como des ino. !
•En iole a la ope ación de close.!
Figu a 4.3 Simulación de en o no pa a ejecución de 8 p ocesos!
51
4.1.Ejecución de aplicación con 4 P ocesos
4.1.1.Red de 10Mb
En p ime luga , la igu a 4.4 mues a la simulación de la aplicación MPI con 4 p ocesos. En ella
obse amos las dis in as comunicaciones y a eas ejecu adas. Como obse amos en el iso de
a eas, el iempo necesa io pa a ejecu a la aplicación es de 57 segundos ap oximadamen e. Es a
ed hace uso de un ancho de banda de 10Mb.!
4.1.2.Red de 100Mb
Figu a 4.4 Rep esen ación g á ica de ejecución de 4 p ocesos con ed de 10Mb!
Figu a 4.5 Rep esen ación g á ica de ejecución de 4 p ocesos con ed de 100Mb!
52
En es e caso, se simula la aplicación con una ed de 100Mb de ancho de banda. Como se puede
obse a , el iempo o al se educe no ablemen e g acias al aumen o de ancho de banda de la
ed, en es e caso has a los 16 segundos ap oximadamen e. El iempo de p ocesamien o de cada
Wo ke sigue siendo el mismo.!
4.1.3.Red de 1Gb
!
En es e caso se simula la aplicación con una ed de 1Gb de ancho de banda. Como se obse a,
al igual que en la ed de 100Mb, la di e encia de iempo o al es conside able con espec o a la
ejecución en una ed de 10Mb. En es e caso el iempo o al es de, ap oximadamen e 15
segundos. Si compa amos iempos en e la ed de 100Mb y 1Gb se obse a que el iempo es
p ác icamen e simila . Es o se debe a que, en es e caso, a pa i de 100Mb, el ancho de banda
apenas in luye en la ejecución de la aplicación. En la igu a 4.7 se obse a de mane a más
de allada la compa ación en e es as dos con igu aciones omando como e e encia, pa a la
compa ación, la con igu ación de 100Mb. !
!
Figu a 4.6 Rep esen ación g á ica de ejecución de 4 p ocesos con ed de 1Gb!
Figu a 4.7 Compa ación de ejecuciones en en o nos de 100Mb y 1Gb!
53
4.1.4.En o no Real
!
Es a ejecución, mos ada en la Figu a 4.7, se lle a a cabo en un o denado con encional, con la
con igu ación ci ada en la in oducción de es e capí ulo. En es e caso, obse amos que el iempo
o al es p ác icamen e el mismo que la ejecución en una ed de 1Gb. Es o se debe a que al se
una ejecución en en o no local, el en ío de da os a o os p ocesos conlle a un iempo muy co o,
al igual que en una ed con g an ancho de banda.!
En conclusión, obse amos que al ejecu a una aplicación con 4 p ocesos, se ob ienen unos
iempos mínimos de 15 segundos, de los cuales más de 12 segundos son dedicados al
p ocesamien o de la imagen. Todos los iempos que supe en es os 15 segundos se án a causa
de la con igu ación de ed usada.!
4.2. Ejecución de aplicación con 8 p ocesos
En es e caso obse a emos como los iempos de compu o globales se án meno es que con una
ejecución di idida en 4 p ocesos. Es o se debe a que cada p oceso ecibe una po ción de meno
amaño, po lo que el iempo de p ocesamien o de la imagen es meno a medida que se aumen a
el núme o de p ocesos.!
Figu a 4.7 Ejecución de aplicación con 4 p ocesos en en o no eal.!

54
4.2.1.Red de 10Mb
!
Al ejecu a la aplicación con más p ocesos, obse amos que el iempo o al de ejecución
desciende, has a los 50 segundos ap oximadamen e, a compa ación de los 57 segundos al
ejecu a la con 4 p ocesos. Es a mejo a p incipalmen e se debe al iempo de p ocesamien o de
imagen de cada Wo ke !
4.2.2.Red de 100Mb
!
Figu a 4.8 Ejecución de aplicación con 8 p ocesos en una ed de 10Mb!
Figu a 4.9 Rep esen ación g á ica de ejecución de 8 p ocesos con ed de 100Mb!
55
Una ez más, obse amos la di e encia de iempo al pasa a una ed de 100Mb. Los iempos de
p ocesamien o se man ienen y los iempos de en ío de da os mejo a no ablemen e la ejecución.
Con ello ob enemos un iempo o al de 14 segundos ap oximadamen e.!
4.2.3.Red de 1Gb
!
Al usa una con igu ación de una ed de 1Gb obse amos, en la Figu a 4.10, como el iempo o al
se educe mínimamen e con espec o a la ed de 100Mb!
!
De mane a de allada, en la Figu a 4.11 compa amos es as dos úl imas ejecuciones. Cla amen e
comp obamos que la ed a pa i de 100Mb no in luye en los iempos.!
Figu a 4.10 Rep esen ación g á ica de ejecución de 8 p ocesos con ed de 1Gb!
Figu a 4.11 Compa ación de ejecuciones en en o nos de 100Mb y 1Gb!
56
4.2.4.En o no eal.
!
AL ejecu a la aplicación en el en o no eal, se ob iene un iempo 10 segundos ap oximadamen e,
de los cuales 8 son de p ocesamien o de imagen en cada Wo ke !
4.3.Ejecución de aplicación con 16 p ocesos
4.3.1.Red de 10Mb
!
Figu a 4.13 Ejecución de aplicación con 16 p ocesos en una ed de 10Mb!
Figu a 4.12 Ejecución de aplicación con 8 p ocesos en en o no eal.!
57
Es a ez, se usan 16 p ocesos pa a el il ado de la imagen. Los iempos o ales mejo an,
pasando de 57 segundos iniciales con 4 p ocesos a, ap oximadamen e, 46 segundos. Una
mejo ía de mas de 11 segundos, aunque con solo 4 segundos de di e encia espec o a los 8
p ocesos.!
4.3.2.Red de 100Mb
!
4.3.3.Red de 1Gb
Figu a 4.14 Rep esen ación g á ica de ejecución de 16 p ocesos con ed de 100Mb!
Figu a 4.15 Rep esen ación g á ica de ejecución de 16 p ocesos con ed de 1Gb!
64
Bibliog a ía
Documen ación MPI:!
h ps://es.sc ibd.com/documen /54101857/Fundamen os-MPI!
h ps://www.open-mpi.o g!
h p://lam-mpi.miscellaneousmi o .o g!
h ps://www.mpich.o g!
Documen ación MPE:!
h p://www.mcs.anl.go / esea ch/p ojec s/pe is/!
Documen ación SIMCAN:!
h p://an a es.sip.ucm.es/cana/simcan/abou .h ml!
h ps://www.omne pp.o g !
Documen ación SIMGRID:!
h p://simg id.g o ge.in ia. !
Documen ación C:!
h p://www.s ack.nl/~dimi i/doxygen/index.h ml!
Documen ación Bash:!
h p://www.s ack.nl/~dimi i/doxygen/index.h ml!
Documen ación JSON:!
h p://www.s ack.nl/~dimi i/doxygen/index.h ml!
Documen ación Ma en:!
h ps://ma en.apache.o g/guides/!
Documen ación JAVA:!
h ps://www.o acle.com/ echne wo k/ja a/ja ase/documen a ion/index.h ml!
h ps://docs.o acle.com/ja ase/ u o ial/uiswing/componen s/index.h ml!