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!