HAL Id: inria-00072912
https://hal.inria.fr/inria-00072912
Submitted on 24 May 2006
HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.
Efficient Support of MPI-based Parallel Codes within a CORBA-based Software Infrastructure
Thierry Priol, Christophe René
To cite this version:
Thierry Priol, Christophe René. Efficient Support of MPI-based Parallel Codes within a CORBA- based Software Infrastructure. [Research Report] RR-3750, INRIA. 1999. �inria-00072912�
ISSN 0249-6399
a p p o r t
d e r e c h e r c h e
INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET EN AUTOMATIQUE
Efficient Support of MPI-based Parallel Codes within a CORBA-based Software Infrastructure
Thierry Priol, Christophe René
No˚3750
Août 1999
THÈME 1
.983:<;>="?$&()@AB1/&6C D 0E,&(F6G6,
HI,JLKNMOMOP+QMAJLRDSUT6VWI,MOJYXOZARD[,I,K]\^KN_,`
acb#dfehghikjmlnOopgOqsr%tguvopw%oxuUdfehgOo
yGzU{}|xguk~vy
lqs?{szpu ?gzpgA4b?gfz44b?gN}sjc{s?uiOsjiE#q}gOo
6Of?ss
acb? o ?{¡fr?ehgfNu¢£{szU¤{o¦¥s}§¨¡A§4iON©qsªeocqucs «¡ª#WqzpgAo¬{sBo¬gup{upb?gvsszUgfNquUgO
~{eh?r%up ?l®6¯¢°{szU¤B{No4¥}s§±?if§¨s²N©B?r?¤#³ª´o¬b#gO ¤NwuUb?gvµk¶]·W¸¯¨uG %gOoUzU ¤BgAo6qvupgA4b??´fqs³¡op{s³ r%uUª{up{
#f{szUB{zUq}upgg¹^fªgOuU³ªwW#qszUqs³ª³ gf³{% %gOoºªNuU{q}gft% o¬up ?W~µkl»c¼¤#qsopgO op{}½¾ux¿cq}zUgª?½£zUqoxuUzpr#upr?zUgs¸
ÀÂÁNÃDÄUÅÆ Ç6s ~µklv»ÈÉvy~ÊȶÂ˺a6v~µk¶ÂyºÌac¯xÊ·WÈy¡ËȶÂyG¯
Í´ÎFÏpШÑOÒcÏÓ6Ô Ð¨ÕYÖ×
Unité de recherche INRIA Rennes
IRISA, Campus universitaire de Beaulieu, 35042 RENNES Cedex (France) Téléphone : 02 99 84 71 00 - International : +33 2 99 84 71 00
Télécopie : 02 99 84 71 71 - International : +33 2 99 84 71 71
E,&(F ,G0, -f-f- .983:<;>=
~g0 %{%fr?ehgfNu0¢£{zp¤{o¦¥§±NE§UiA©gAoxuWr??g0zpnOB{#o¬g0q}r szUgfNqupgA ~{seh?r%uUª?
lv®¯¢°{szU¤B{No4¥}s§±?if§¨s²N©c#r?¤?³ ªn0#q}z³µk¶]·W¸ ¯±³c %nOfzpªur??go¬{³ªr?up {s upgA4b??r#g^B{r?z #f{szUB{zpgOz
gf¹^fqsfgfehgfNu %gAo{% %gOocBq}z4q}³ ³ªdO³ªgAoqsrÂo¬gOª' r??g %½£zUqoxuUzprB¦upr#zpg³ {ss´ gf³ ³ gv½£{# %nfgopr?z~µkl»c¸
/Æ A Ä ~µklv»ÈÉvy~ÊȶÂ˺a6v~µk¶ÂyºÌac¯xÊ·WÈy¡ËȶÂyG¯
C
8EDcFDc1
acb# o ?{¡fr?ehgfNu¢£{zp¤{o¦¥§±NE§UiA©qsªeoq}us «N ?Âq'zUgOopB{#o¬gWuU{'upb?gvszpgOquUgO ~{seh?r%uUª?
lv®¯¢£{szU¤{o¦¥s}§¨#i§±}²¡©G?r#¤?³ª´opb?gO ]¤NwuUb?gµk¶·W¸B¯¨u %gOoUzU ¤BgAoq^upgO4b#? Oq}³ op{s³ r%up {sÂuU{ #{zp{}§
z4quUggf¹fªgONup³ wÂ#q}z4q}³ ³ªgO³f{¡ ?gOokªNuU{0q}gt%´oxuUª?Â~µkl»c/¤BqsopgO op{}½¾ux¿cq}zUg %½£zUqoxuUzprB¦upr#zpg¸acb# o
op{s³ r%uUª{ ´o¤BqsopgO { gfªupb#gfz^q} gt¡upgO#opª{ {}½upb?g¯>GIH ³´q}?r#q}g{z?z4q}eqsouU{ o¬r?#B{z¬uWupb?g
{zU4b#gOo¬upz4qup {s'{s½q^zp{r? {s½º?zU{¡fgOoUo¬ ?o¬r?¤Bo¬w%o¬upgfeovup{¿{z'JuU{ssgfupb?gOz{]q0³ qszpg?zU{s¤?³ gfe ¤¡w
? o¬upzUª¤#r%up ?^¤{}uUb {seh?r?uUquUª{ q}#  #quUq#¸c¯¨u %{¡gOov?{}uvzUgNr? zUgupb?geh{% %LKBfq}up {sÂ{s½6uUb?gWµkl»k¸
acb#g?zU{s{opgO o¬{³ªr%uUª{ q} eoquf{se¤?ª#ª?¤{}uUb~µkl»c q}B ¶ yG¯zpr#uUªehgAo<M¸acb?geWgOzpª#
{s½ uUb?gux¿{WuUgO4b??{³ª{s gOoq}³ ³ª{¿ouU{hsgucuUb?gzpg Nr?ªzUgO ³ªgO«sgO³F{}½,BgOz¬½£{zpeq}Bgq}# 0ªNuUgfzU{sgfz4q}¤? ³ªªuxws¸
N
r#gOo¬up {s#ocq}¤{sr?uupb?´ozUgOopB{#o¬gopb?{sr?³´ ¤Bg % zUgO¦uUgO 0up{O
P
GvzA¸Gacb? gfzUzpwyGzp {s³F¯xl¯¬%k¥¯xÊvl¯x
~q}eh?r#ov %g»gAq}r?³ gfr
s}²RQlgO??gOov~gA %gt
®?z4q}#fg
?b?{?gSO/TkUQWsWVs²^SQ^iA
½°qtO/TksWQWsWV}²XQ3QSV
gfeq} ³?OGacb?ªgOzpzUws¸yGzUª{³)Y zU oUq?¸½£z
acb?´o %{%fr?ehgfNuvqs ? ?zpgAopopgOoºupb?g½£{³ª³ {¿ ?huUgfeo{}½upb?gvszpgOquUgO '~{seh?r%uUª?l®6¯O
P
²#¸ZQ%¸ZQy,qszUqs³ª³ gf³DyGzU{%gAopopª#
P
²#¸ZQ%¸^µvupb?gOz¯xopopr?gOo¢¨~µkl»co¬gOzp«¡´gOocqs# 'fq}Bq}¤? ³ªªup gOouUb#quqszpg?zU{s¤?³ gfeq}up´O©
P
²#¸ZQ%¸²µvupb?gOzvNuUqs# ?q}z4 %*[Oq}up {s0up «¡uUªgAo¢°¶Âyº¯®#{szUr?e^©
acb?´o %{%r#eWgONu ?gOoUzUª¤gOoupb#gkzUgOopr?³ªuUoc{s½zUgOopgOq}z44b¿{sz"J¡oºupbBqub#qE«sgk¤gfgf'q}³ zUgOqs ?w?r?¤?³ opb?gA
oU gfNupLKBf{s%½£gOzpgO#gAof¸cacb?g½£{³ª³ {¿ ?zpgf½£gfzUgf#fgOof{sNuUqsªBocupgA4b??´fq}³ ª%½£{zpeq}up {s q}¤{sr?uv{sr?z
¿{sz"JO
is¸cy,¸D»gAq}r?gf# %zUgsÈa¸Byºzp {s³YÈ ·W¸v³ª³ nf{ ÈFq}# \G¸GvgO³ qE«qsr%tF¸v2~³ gfNu¦¥s¡gfzU«sgOzv?#zp{Nqs4b½£{sz
Éy~ v??³ Oqup {sBo¿ªupb? qhÊgux¿{sz"J¡ª#W˺N«¡ zp{?ehgfNuO¸¯±'yGzp{%s¸º{}½GÉvy~ÊSV#È?¡r?e¤gfz
if²N?i ]H Êk~cFÈ %?zp ?gfzW^ gfzU³ qs#ÈGBq}sgAoW?i-V$_%SQ%È,eo¬upgfz4 ?qseÈy qEw¡o¬§±»qofÈ v?zp ³iOSV#¸
qE«q} ³ qs¤?³ªgq}ucbNupup`O¥s¥¿¿¿¸ zp´oUq?¸½£z¦¥#q}zU o¦¥E¤#ª¤?³ {¡¥®6´4b? gfz4ox§¨y#¥}acb?ªgOzpzpwN§YyGzU {}³¾¥b?D#V?¸#o¸S[
Q%¸a¸vyGzU {s³qs# ~¸vlgf#ns¸ ~{¤?z4qO+ ~µkl»c§¨f{seh?³ qsuÂyGzU{szUqseheW ? ËG¡«¡ªzU{s?ehgOu
½£{szhÉ sb%§¨y,gfzp½£{szUeq}#fg~{seh?r%uUª##¸ ¯± yGzU{%}¸ {}½ËGr#zp{s§Yy q}z SV?È6¡r?e¤gfz'iO²¡' aHÊk~º§
DÈ%¡?zUª?gfz,^ gOzp³´q}BÈ}#qssgOoisisiO²$_DisiQQ%È}¡{r%upb#qseh%up{ ÈÌIbhÈN¡gO%upgOe¤gfzkiOsV?¸ qE«qsª³´q}¤?³ gqu
bNu¬upcO¥¥E¿¿¿¸ªzU oUq?¸½£z¥E#qszp´o4¥¤? ¤?³ª {¡¥}®6 4b? gfz4o¬§YyB¥acb? gfzUzpwN§YyGzp {s³£¥AgOr?zp{s#q}zUSV%¸#oO¸[
degfBhjiAk?l<m=n=ico*pq`e;r>iAisl<tr,fl<i?iAuZm=t5h)mk?r>qvowl<x>rySuk`uZiFl/n=rzowl<x{kAp5iAk?l<m=n$l<qn;oLpqc|=l<q?l<}Z}Zr>}~|=qptqAl<&&uZm=t=
F
m-<
?¸v~¸lgO?n^q}B a¸ yGzp {s³Y¸¶Âyº¯~{% %g˺#fqs#o¬r#³ q}up ?'r#o¬ ?Ây q}z4q}³ ³ gf³~µkl»cµ¤%|xgA¦uO¸¯±
yGzU{¡s¸{s½#{}½Bupb?gcËG sbNuUb¯±ËGËºË ¯±NuUgfzU#quUª{#q}³%¡w¡ehB{No¬ r?e {É sbWy,gfzp½£{szUeq}#fg/G o¬upzUª¤#r%u¬§
gO ~{seh?r%uUª?BÈGr?r#o¬u0iOs#¸]qE«q} ³ qs¤?³ªg0quhbupup`O¥s¥¿¿¿¸ zU oUq?¸½£z¦¥#q}zU´o4¥¤?ª¤#³ª {¡¥}®´4b? gfz4ox§
y#¥}acb?ªgOzpzUwN§Yyºzp {s³£¥Eb?D ?-V?¸#of¸S[
²#¸a¸fyGzU {s³YÈ~¸Algf?nÈq}# ·W¸Ov³ª³ nf{ ¸6B~¯¨§Y¤#qo¬gA ~³ªr#o¬upgOz,~{eW#r%up ?#ÈE4b#qs%upgOz yGzU{ssz4q}eheh ?
#~¯~³ r#oxuUgfz4or#opª#^y q}z4q}³ ³ªgO³6~µkl»c>µ¤%|xgA¦uUoOÈ?uU{0qs?BgAq}zAÈB¡?zU ?sgOz8H Ê~c NuUq}upg{s½ upb?g
zpu6¡r?zU«sgOw%of¸ ¡#zp ?s³ gfzc^ gfzU³ qs#ÈsiAs?¸ qE«q} ³ qs¤?³ g,q}u bNu¬upcO¥¥E¿¿¿¸ªzU oUq?¸½£z¥E#qszp´o4¥¤? ¤?³ª {¡¥}®6 4b? gfz4o¬§
y#¥}acb?ªgOzpzUwN§Yyºzp {s³£¥E³ #foUs#¸Bof¸S[
+&,&--- 0,(( 1345 .983:<;>=
Êv{¿q ?qEw%ofÈsupb?g %gAo¬ s0{}½f{seh?³ gt^eq}¡r%½°q¦uUr?zpgA ^?zU{% %r#uUoOÈ¡opr#4bqsocfqszUo{szq} z4z4q½¾uUoOÈN oc¤#qo¬gA
{¡r?ehgfzU Oq}³Bop er?³´quUª{hupgO4b#?Nr?gAof¸ ªupb^uUb?gvgfzp½£{szUeq}#fg{}½ f{seh?r%uUgfz4oGz4q}?´ %³ w #zUgOqo¬ ?#È
ªu ok{oUo¬ ¤?³ guU{½£{zpgAo¬gOg upb#g?gAq}z½£r%upr#zpg{eh?zpgOb?gfBo¬ «sgop er?³´quUª{#ov{s½Gupb#gOopgW %gAo¬ sBovuUb#qu
gO#{eh#qsoUocer?³ªupª§± % oU ?³ ªBq}zUw0qsopgO¦u4o¢°o¬upzUr#upr?z4q}³ ehgA4b#q}?´foOÈ#f{seh?r%u4qup {sBq}³#r#  %w¡#qseh OofÈ
#{s´o¬gqs#q}³ w%o¬´oOÈBgfuUO©¸kÊvr?ehgfzU Oq}³,o¬ er#³ q}up {s {s½ upb?gAo¬gW %DgfzUgfNuqsopBgA¦uUo¿ ³ª³,zUgNr? zpguUb?gqsszpgf§
NquUª{ {}½opgf«gfz4q}³6{seh?r?up ?0zUgOop{sr#zUfgOoOÈ#uUb#quq}zUgqE«q} ³´q}¤?³ g{s q#gux¿{sz"JÈBup{ JsgOgf o¬ er?³´quUª{
uUªehgAo¿ªupb#ª q]zUgOqo¬{#q}¤?³ g¤{sr?# ¸ < ? o¬upzUª¤#r%upgA op{}½¾ux¿cq}zUg^ª?½£zUqoxuUzpr#upr?zUg¿ ³ ³uUb?gfzUg½£{zpg0¤Bg
zUgNr? zUgO up{0eqJsgq³ r#o¬upgOz{s½º{seh?r?up ?zUgOop{sr?z4gAoqsu³ LJgq^op ?s³ g³´q}zUsg«¡ z¬uUr#q}³6{eW#r%upgOzO¸
%r#4b^o¬{s½¾ux¿qszpgc %½£z4qso¬upzUr#¦uUr?zpgc¿ ³ª³Bb#qE«sgcuU{¤g¤#qsopgO W{^q}q}?#zp{?zp´quUgceW´ ? %³ gf¿cq}zUgcup{b? ?gupb?g
? o¬upzUª¤#r%up {s'{}½,zUgOop{sr?z4gAoqs# up{?zU{«¡ %gopgfzU«¡ fgOo½£{szcuUb?ggft¡gAr%uUª{0{s½,qs??³ OquUª{#of¸~µklv»
´ovqWuUgO4b?#{s³ {ssw0{}½G4b?{ fg½£{szuUb?´o?r?zU{opgo¬ #fguk?zp{«¡´ %gOo¤B{supb qhuUgO4b??Nr?guU{^gf#Oq}#opr?³´quUg
f{% %gOoqs# uU{ %´oxuUzp ¤?r%uUg'upb?gOe qsfzp{Nopohopgf«gfz4q}³{eW#r%up ? zpgAo¬{r?z4gOoO¸¶Â{szUgf{«gfzAÈ~µkl»c< o
¤gf ?hqs %{%upgA ^¤¡whupb#gkgO?s ?gOgfzUª?ªB %r#o¬upzUwupb#q}u´oczUªbu?{¿uUb?g³ qszpgOo¬ur#opgfzc{eWer??ªuxwh½£{sz
¡r?ehgOzp´fqs³Dop er?³´quUª{}¸
Év{¿gO«sgfzAȺ~µkl»c %{¡gAo?{suW#zp{«¡´ %gq} g¹^ gfNuh¿qEwup{gf#Oq}#opr?³´qupg0b? sb gfzp½£{szUeq}#fg
¡r?ehgOzp´fqs³ o¬ er?³´quUª{Âq}??³ ´fquUª{#oupbBquqszpgr#opgO '¤¡w^uUb?ggf#s ?gfgOzp ?hªB %r#o¬upzUws¸c¶Â{o¬u{}½6upb?gAo¬g
qs??³ OquUª{#oq}zUgh#q}z4q}³ ³ªgO³ {% %gOozpr?#?ª#{ o¬r?gfz4{eh?r%upgOzUoO¸¡r#4b f{¡ ?gOozUgNr? zpgWupb#gr#o¬g{s½
opgOLKBWzUr?Nup eWg^opw%oxuUgfeok½£{szuUb?gf zgt%gAr%uUª{ ¸^acb?gheh{o¬u¿gO³ª³J¡?{¿>zpr?NuUªehgh oupb?g^¶ÂgAopoUq}g
y qopopª#¯±Nupgfzp½°qsfg¢L¶ÂyG¯¬©º¿b? 4bb#qso¤BgOgf %gOoUzUª¤gO ^ªq?zUgf«¡ {sr#oºzpgAo¬{s#opguU{upb#gkvsszUgfNquUgO
~{eh?r%up ?lv®¯¢AGv{%r#eWgONu{szU¤{o¦¥s}§¨s²}§4iQ©¦¸,acb?g{r??³ ª#^{}½G¶ÂyG¯¨§¨¤#qo¬gA op er?³´quUª{'f{% %gOo
Oq}?#{}u ¤g %{?gGgf¹fªgONup³ wvuUb?zp{r?sbuUb?gc~µklv» µkl»k¸Oacb?´o ?{¡fr?ehgfNuqsªeo q}u?zU{s{op ?o¬{ehg
eh ?{sz gt¡upgO#o¬ {sBoDup{uUb?g~µkl»c qszU4b#uUgO¦uUr?zUg ª{zU %gOzDup{vopr??{szpu gf¹fªgONup³ wvuUb?gGgfBfq}Bo¬r?³´quUª{
{s½6¶Âyº¯¨§Y¤#qo¬gA '{% %gOoc Nup{~µkl»c {s¤%|xgA¦u4of¸
acb?´o¿{sz"J' ?{NgAok?{}uq} equgt¡uUgf# % ? ~µkl»c ½£{z#q}z4q}³ ³ªgO³#zp{sz4q}ehehª?0o¬{0upb#q}uufqs
zUgf#³ qg¶ÂyG¯¦¸B¯±#oxuUgOq FÈ?ªuq} eoquvopb?{¿ ?hb?{¿¼uU{^{e¤? ?gg¹^fªgOuU³ªwupb?gAo¬gux¿{^o¬uUq}B ?q}z4 ?oc
{zU ?gfzup{h¤gq}¤?³ gup{ %gO«sgf³ {sb? sb%§¨gfzp½£{szUehqs#g %´oxuUzp ¤?r%uUgO 'op{}½¾ux¿cq}zUgv?³´qup½£{szUehoO¸
=rch\k?pp}~pSr>qAiFl
"!
uZmkArqvo*l<xr,uZmIuk?i`}l<iAkcqr>}Zr'l<iAr
h$#
h
CORBA ORB Stub
Client
IDL specification for MPI-based parallel codes
IDL compiler Machine A
MPI Communication layer
Skel.
BOA
Supercomputer
SPMD CodeSPMD
CodeSPMD CodeSPMD
CodeSPMD CodeSPMD
CodeSPMD Code
SPMD CodeSPMD
CodeSPMD CodeSPMD
CodeSPMD CodeSPMD
CodeSPMD Code
MPI Slave processes
MPI Master process
SPMD Code
® sr#zpghiSO !eqso¬upgOz¦¥}o¬³´qE«sgkq}?#zp{Nqs4b^uU{hgf#Oq}#opr?³´qupg¶Âyº¯f{¡ ?gOo
+ &'( -&6 m! ?"?$'&( )*&,&--f- )0(3f 6 .983:<;>=
$ º(
acb#gW NupgOsz4qup {s {}½c¶ÂyG¯¨§¨¤#qsopgO #qszUqs³ª³ gf³Gf{¡ ?gOokup{'gft¡´o¬up ?~µkl»c ª%½£z4qso¬upzUr#upr?zUgOok´oq} ªeW§
{szpuUqsNuk´opopr?gWª eq}¡wÂzUgOopgOqszU4b]qs# ] ?gf«sgO³ª{?ehgfNu?zp{s|xgOuUo¸¯± eh{o¬u{}½ºuUb?gOopgh?zU{}|xgOuUoOÈDupb?g
rBo¬r#qs³ ¿cqEw{s½Ggf#Oq}#opr?³´qup ?^Bq}z4q}³ ³ªgO³ {% %gAo´ouU{qs %{%uqehqoxuUgfz¥op³ qE«gkqs??zU{q4b'qovopb?{¿Â
®6 sr?zUghis¸
¶Âyº¯¨§Y¤#qo¬gA Bq}z4q}³ ³ªgO³cf{% %gÂfq} ¤g o¬gOgfqsohq o¬gfu^{}½´ %gOuU Oq}³?zU{%gAopopgOohfqs³ª³ gO ¡yº¶ G
#zp{%gAopoO¸,acb?g{% %gupb#q}uf{szUzpgAo¬{sB ?o uU{hopr#4b0?zp{%fgOoUoº´ofqs³ª³ gO 0qW¡y¶\G {% %g¸,˺qs4b0?zp{%fgOoUo¬{z
{s½BqBq}z4q}³ ³ªgO³opw¡o¬upgOezpr##o {?g¡yº¶\G?zU{%gAopoO¸ acb?geqso¬upgfz¥op³´qE«sgGq}#?zp{Nqs4b{#op o¬uUoªWo¬gO³ªgA¦uUª?
{?gº#zp{%gAopo¢£rBo¬r#qs³ª³ wkupb?g{s#gb#qE«¡ ?vq³ª{s´fqs³s?zU{%gOoUo %gONupLK#gfz6gNr#qs³uU{N©FuU{?³´qEwkupb?gzU{s³ gº{}½#q
eqoxuUgfz,upbBquG´oG{??gOupgA uU{o¬³´qE«sgc?zU{%gOoUopgOoupb?zU{sr#sbupb?gv¶ yG¯6f{seher#? OquUª{³´qEwsgOzO¸ µ?³ªwupb?g
eqoxuUgfzk?zp{%fgOoUov´ovgO#fqs#opr?³ q}upgA ªNuU{qÂ~µkl»c {¤%|xgOuO¸¡r#4b o¬ eh?³ gWop{s³ r%up {s]zpg r#ªzUgOoko¬{ehg
eh{% %LKBfq}up {s#oºup{Wgt%´oxuUª#¶ÂyG¯{% %gAoºª½ uUb?gfw^ %´ ^#{}uq}³ zpgAqs %w½£{s³ ³ª{¿+qeqso¬upgOz¦¥}o¬³´qE«sgqs??zU{qs4b ¸
¶ {szUgf{«sgOzOÈupb#g0eqso¬upgOzhehqEw zUgf?zUgOopgfNuhq} ehB{z¬u4q}NuW¤{}upup³ gf?gA<J ¿b?gf ux¿{ ¶ÂyG¯W{% %gOob#qE«g
uU{ f{seher#? OquUg0¿ªupb gOq4b {}uUb?gfzA¸ a{ ³ª³ r#o¬upz4quUguUb? oW?zU{s¤#³ªgOeÈqopªeh?³ g'gt?q}eh?³ g ohopb?{¿
®6ªr?zpg Q?¸03f³ª gfNu´ooU4b?gO ?r?³ª ?'uUb?g^gt%gAr%uUª{ {s½ux¿{ ¶ÂyG¯¨§¨¤#qo¬gA Bq}z4q}³ ³ªgO³G{% %gOoO¸Gkqu4q?È
gf?gOzUq}upgA ¤¡wupb#g5K#zUo¬uG{% %gÈsq}zUgNquUb?gfzUgO ¤Nwupb?gf³ª gfNuºq}B qszpgco¬gONu6uU{kupb?gopgOf{s# W{% %gÈ}¿b?´4b
^uUr?zUopOqupupgfz4oºupb?gk ?qu4qup{upb#gk¶Âyº¯ºo¬³´qE«sgv?zp{%fgOoUo¬gAofÈBgOz¬½£{zpeoºupb?g{eW#r%uUq}up {sqs# q}upb?gOzUo
uUb?gkzpgAo¬r?³ªuUoºup{Wo¬gO# uUb?gfe9¤Bqs<Jup{upb?g³ ªgONuO¸ acb?´oqs??zU{q4bh ?{NgAoº#{}uc{ DgfzcqoUfq}³´q}¤#³ªgko¬{³ªr%uUª{
<h)m k=r oLqAl<&r pq p<o k=r iA|=qAuk |=qptqAl<&&r om=n=r>n k r =qp|Srl<m cm=uZpm
kAkA|,l<qkk?uZxx>p"|=qprx{kAi z kAkA|,!<i'pqt#" pq oLqAp p<k=r>q uZm=ukAul"k?u$r>i om=n=r>n%
&=qp|r'l<m xpmkAqAuZr>i
kAkA|@iAuZiAkAr>xn}Zqn=r"r>m'"|=qpr>x>kAi'kAr>mk() r 1rmk'kA&}*"
+,-uZmt}ZrzfqptqAl<e-=}kAuZ|=}Zr zl"ksl
,fje ."BuZi`l<m8r/-r>x0-k?uZpmI&p-n=r>}}l<qtr}1=i?r>n k?p@|=qptq?l<a|$l<q?l<}Z}Zr>}Si-iAkAr>&i'
F
m-<
CORBA ORB Stub 2
Client Scheduler
MPI Communication layer
Skel. 2 BOA
Code 2
SPMD CodeSPMD
CodeSPMD CodeSPMD
CodeSPMD CodeSPMD
CodeSPMD Code MPI Slave processes
MPI Master process
MPI Communication layer
Skel. 1 BOA
Code 1
SPMD CodeSPMD
CodeSPMD CodeSPMD
CodeSPMD CodeSPMD
CodeSPMD Code MPI Slave processes
MPI Master process
Stub 1
SPMD Code
SPMD Code
®6 sr?zUg Q1Oº~{sr?#³ª ?h{}½6ux¿{¶Âyº¯¨§Y¤#qo¬gA Bq}z4q}³ ³ªgO³Df{% %gOouUb?zp{r?sb0upb#g~µkl»cµklv»¸
uU{Wupb?ggfBfq}Bo¬r?³´quUª{{s½#qszUqs³ª³ gf³F{% %gAof¸ oupb?g¡r?e¤BgOz{}½,%yº¶\G?zU{%gAopopgOo{szupb#go¬*[fg{}½upb?g
#zp{¤?³ªgOe ¢°qseh{sr?Nu{}½ ?q}uUqupz4q}#opehupupgA 0¤gux¿gfgOux¿{h#qszUqs³ª³ gf³ f{¡ ?gOo4©ª#fzpgAqsopgOoOÈ¡uv¿ ³ ³ gfNuUqsª³ q
³´q}zUsg{eher??´fq}up {s{«sgOzpb?gAqs F¸
a{qE«s{s´ huUb?gquUb?gfzU ?qs# ^uUb?gopOqupupgfzU ?{s½ ?q}uUq¿b?gf'fqs³ª³ ª#Wq^~µkl»c {s¤%|xgA¦ugf#Oq}%§
opr?³´quUª?qk¶ÂyG¯,{% %gsÈsu ´o,?gOfgOoUopqszpwkup{k{ DgfzGqvupgA4b??Nr?gcªW¿b?´4bWqs³ª³Nupb#g%yº¶\G+#zp{%gAopopgOo¿ ³ª³
¤gvgO#fqs#opr?³ q}upgA hªNup{~µkl»c+{¤%|xgOuUoO¸ ªupbo¬r#4b^qsq}#?zp{Nqs4b Èq}³ ³#uUb?gk¡y¶\G ?zp{%fgOoUo¬gAoG¿ ³ª³
¤g{s#?gOupgO up{upb?gµkl»q}³ ³ª{¿ ?uU{gfzp½£{szUe9{eWer??´fq}up {s^¤gux¿gfgO^{s¤%|xgA¦u4oº¤gf³ {s?ª#up{
ux¿{0 ?DgfzUgfNu{s³ ³ gO¦uUª{#ovupb?zU{sr?bÂupb#gµkl»k¸ ¡r#4b o¬{³ªr?up {s ´okehqsª#³ªw %zUª«gf¤Nw'gfzp½£{szUeq}#fg
zUgOqo¬{#oO¸'Év{¿gO«sgOzOÈ6uW o?gAgOoUoUq}zUw]?{suup{]gt%B{No¬g#q}z4q}³ ³ªgO³ª´ope uU{q f³ª gfNuO¸ acb?´oehgOqs#ouUb#qu
uUb?gf³ª gfNucb#qsoGup{Wo¬gOgv{s#³ªwh{s#gvgfNuUuxwh #oxuUgOq {}½ qs³ª³Bupb?g~µkl»c+{¤%|xgOuUogf#Oq}#opr?³´qup ?%yº¶\G
#zp{%gAopopgOoO¸ºo½£{szvª#o¬uUqs#gÈ#q}Â{BgOzUq}up {s'fqs³ª³YÈ#´opopr?gA 0¤¡wq³ ªgOuAÈ#b#qocup{¤Bggfzp½£{szUehgO ¤¡w0qs³ª³
~µklv» {s¤?|xgO¦u4oGuUb#quzUgf?zUgOopgfNuGuUb?g¶ÂyG¯{% %gs¸ acb?´ocfqs³ª³ ª#b#qoºuU{¤g %{s?gupz4q}Bo¬#qszpgONup³ w¤¡w
uUb?gf³ª gfNuA¸¶Â{zpgO{«sgfzAÈ?ª½q^f³ª gfNu#gfgO #ouU{0 %´oxuUzp ¤?r%uUg ?q}uUq0q}eh{s?0~µklv»/{s¤%|xgA¦u4ofÈub#qoup{
¤g^ %{?g^qsouUzUqs#op#q}zUgfNup³ w qso{oUopª¤?³ gs¸0acb?gOopghux¿{'{?B{No¬ªupgzUgNr? zUgfehgfNuUo¢°BgOz¬½£{zpeqs#gq}B
uUzUqs#op#q}zUgf#fw?©³ gOqs up{upb?g' NupzU{¡ ?r#¦uUª{ {}½q]#gf¿ f{s#fgf%uAȺfqs³ª³ gO #qszUqs³ª³ gf³~µkl»c{¤%|xgOuOÈ
uUb#quk?zU{«N´ %gAovquUzUq %g§¨{ ¤Bgfux¿gOgf gfzp½£{szUeq}#fgq}B 'upz4q}#op#qszpgO#w¸vacb?g#gt¡uopgOup {sª«gOovq
?gOoUzUª%uUª{0{s½ uUb? ov{sBgf?uO¸
+&,&---.989: ;>= $ º
acb#g{sBgf?uv{}½,#q}z4q}³ ³ gf³6~µkl»c!{¤%|xgOu´ovopªeh?³ w0q^f{s³ ³ªgA¦uUª{0{s½,´ %gOuU Oq}³6~µklv»!{¤%|xgOuUo
qoo¬b#{¿ ® sr#zpg?¸^<~µkl»c>{¤%|xgOugf#Oq}#opr?³´quUgOoq¡yº¶\G?zU{¡fgOoUof¸h¯¨uuUb¡r#o{eW#³ª gOo
¿ªupb]upb?g3K#z4oxukzpg Nr?ªzUgfehgOuko¬ #gW %r?zUª#^upb#ggft¡gAr%uUª{ {}½q^#qszUqs³ª³ gf³6{% %gsÈDgO«sgfzUw?zp{%fgOoUo¢°L¸gs¸
qsÂ~µklv» {¤%|xgOu4© of{s?#gO¦uUgO up{huUb?gµkl»k¸%¯¨uv{seh?³ gOoq}³´op{¿ªupbupb#gopgOf{s# 0zUgNr? zpgOeWgONu
¢£upz4q}#op#qszpgO#w?©o¬ #gq'#qszUqs³ª³ gf³º~µkl»c {s¤?|xgO¦u´or#opgO qsoq'o¬uUqs# ?q}z4 ~µklv»2{¤%|xgOuO¸³ ³
uUb?gW~µkl»c!{¤%|xgOuUo¤gf³ {s?ª#hup{qf{s³ ³ªgA¦up {sÂOq}'¤Bgehqs? ?r?³´qupgA Âqsoq^op ?s³ ggfNupªuxw¤¡w0upb?g
<fl<qAl<}Z}Zr}p r>x>kFuZi=i?r>n8o*qpm=p0\pm uZm=ik?rl<nIp<o|=l<q?l<}Z}Zr>}
"!
\p rx{k
h$#
h
CORBA ORB Stub
Client
Extended -IDL specification for MPI- based parallel codes
Extended -IDL compiler
Machine A MPI Communication layer
Skel.
BOA Object
impl.
SPMD code
Skel.
BOA Object
impl.
SPMD code
Skel.
BOA Object
impl.
SPMD code
Skel.
BOA Object
impl.
SPMD code
Supercomputer Parallel CORBA object
®6ªr?zUgBO,y,qszUqs³ª³ gf³~µklv» µ¤%|xgA¦uA¸
opw%oxuUgfe'¸ ®6ªz4oxu{}½ qs³ª³YÈsuUb?gfq}³ ³ ª?{}½ qs^{sgfz4quUª{¤Nwq³ ªgOu¿ª³ ³zpgAo¬r?³ªu ^uUb?gvgft%gOr?up {s^{s½ upb?g
qopop{%´quUgO ehguUb?{% ¤¡w^qs³ª³D{s¤?|xgO¦u4o¤BgO³ª{?s ?up{upb?g{³ª³ gOup {squupb?gopgfzU«sgfzo¬´ %g¢¾½£{³ª³ {¿ ?qs
%yº¶\G gt%gOfr%up {seh{% %gf³¾©¦¸,acb?´o #qszUqs³ª³ gf³qs¦uUª«q}up {s´o %{?g upz4q}Bo¬#qszpgONup³ wq}B ?qu4q %´oxuUzp ¤?r%uUª{
¤gux¿gfgOuUb?g{s¤?|xgO¦u4o,¤BgO³ª{?s ?up{q{³ª³ gOup {sW o,gOuUªzUgf³ wb#qs# %³ gO ¤¡wupb?gopw%oxuUgfe'¸ ¡r#4bW³ªgO«sgf³%{s½
uUzUqs#op#q}zUgf#fw´oq4b? gf«sgA Wupb?zU{sr#sbhupb#gkq ? % ?{s½ ?gf¿ %½£{szUequUª{hup{uUb?g{seh{s?gONu uUgfzp½°qsfg
zUgf#zpgAo¬gOuUgO ¤¡w qs¯>G Ho¬gOfKBOquUª{ ¸ ªupb o¬r#4bª?½£{szUehq}up {s ÈF#gf¿>o¬upr#¤#oq}# oJgf³ guU{s#okfqs
¤gsgO?gfz4quUgO ^up{b?´ %gqsocer#4bÂqsoc{oUo¬ ¤?³ guUb?g{³ª³ gOup {s{}½G~µkl»c {¤%|xgOuUouU{hupb?gf³ª gfNuO¸
"!$#
!%'&( )+*,-./102243
5(6( 76 89"&(;:% <=*",-.>3
5(6( 76 89"&(;<=*",-.<=*",-.>3
?
%6@8"&A"&5>BAA76C(!DFEGH(I<J%K7L>M$': NEM
8'6"(!%DFEGH(I:% OHQPR3
?
%6S!%T&UBVO6C(!DFEGH(IW:% OH4MX 8Y(!8@Z6 89&(
?
&PR3
[ 3
®6ªr?zUgk²Oz^ gfz4o¬ {s¿uUb'¯>GIH gftNuUgf#op {s
Bq}z4q}³ ³ªgO³{s¤%|xgA¦u uUgfzp½°qsfg o ?gOoUzUª¤gO k¤¡wqskgft¡upgfB %gO «gfz4o¬ {sk{}½Nupb?gº¯>GIHºÈffqs³ª³ gO kË t¡upgO# %gA ¡§
¯>G HG¸D¯¨u okqo¬gfu{}½?gf¿ Jgfw¡¿{sz4 ?o{szk?z4q}ehqouU{0opBgAª½£w¤B{supb uUb?gWNr#e¤gfz{}½G{¤%|xgOuUo¿uUb?ª
F
m-<
)%@C JU
W "!$#
!%'&( )+*,-./102243
5(6( 76 89"&(;:% <=*",-.>3
5(6( 76 89"&(;<=*",-.<=*",-.>3
)%@6C(!6C!%DFEGH(I<L
)%@6C(!6C!%DFEGH(IWH
?
%6@8"&A"&5>BAAN(7L M ':% NEM 8O:% OHCP 3
)%@6C(!6C!%DFEGH(IWH
)%@6C(!!8@
?
&
?
%6S!%T&UBV7: OH>M 8 6 8(9"&(
?
&PR3
[ 3
®6 sr?zUg1O^ gOzUopª{¿ªupb'?z4q}ehqof¸
uUb?g{s³ ³ gO¦uUª{q}B upb#gk ?q}uUq % o¬upzU ¤?r%up {s ¸,®6 sr?zUgv²hopb?{¿oºqsË t¡upgO# %gA ¡§Y¯>G H o¬gOfKBOquUª{{}½ q
«gfzUw^o¬ eh?³ ggt?q}eh?³ gs¸
¯± ® sr#zpg^²BÈ gt¡upgO#opª{#ouU{ upb#g¯>G H¼³´q}?r#q}g^q}?gOqsz ¤{s³´ ½°qsfgs¸ acb?gXK#z4o¬ugt¡upgO#opª{
f{s#op´oxuv ]opBgAª½£w¡ª?upb?g¡r?e¤gfz{}½G{s¤?|xgO¦u4o Âupb#g{³ª³ gOup {s qs# 'upb#g«¡ªzpuprBq}³opb#qsBg{s½ upb?gAo¬g
{¤%|xgOuUoO¸acb? ohgft¡upgfBo¬ {sq}?gOqszUok|xrBoxuq}½¾upgfzhuUb?g uUgfzp½°qsfgJgfw¡¿{zU ¸ acb?g opgOf{s# gt¡upgO#opª{
¢L %´oxuAÈGfopr?e^©´ozUgf³´quUgO uU{Âupb?g' ?q}uUq %´o¬upzUª¤?r?up {s qopop{%´qupgA ¿uUb #qszUqseWgfupgOzUo{s½{sgfz4quUª{#of¸
%r#4b+gt¡uUgf#opª{#oqs?gOq}zqso?gf¿ ¯>G H Jgfw¡¿{zU #ob?{¿gf«sgOz?z4q}seqo^fqs+¤Bgr#opgO #o¬upgOq +qso
opb?{¿' ® sr#zpg?¸c¯±'upb#q}ukfqo¬gÈ?#qszUqs³ª³ gf³6~µklv» {s¤%|xgA¦u %{¡gAo?{suvzpg Nr?ªzUgupb#geh{¡ ?KBOquUª{
{s½ uUb?g¯>GIH opw¡NuUqtF¸
acb?gh½£{³ª³ {¿ ?opr?¤#opgOup {s#oª«gWq'opb?{szpu %gOoUzUª?up {s q}¤{sr%ub?{¿/up{'eq} {s¤%|xgA¦u4okqs# b?{¿
uU{W ? o¬upzUª¤#r%upg ?q}uUqqseh{s?upb?gk{s¤?|xgO¦u4o¤BgO³ª{?s ?up{upb?g{³ª³ gOup {s0r#o¬ ?upb?gkgt?qseW#³ªgks «sgO
®6 sr?zUg²¡¥s%¸6³ ³%upb?gvgt¡upgO#o¬ {sBoGqs ? ?gO up{uUb?g¯>G HGÈqo ¿gf³ ³#qsoGop{sehgczUgOo¬upzU up {s#o qs¤B{r%uº uUgfzp½°qsfg
?b?gOzpªuUqs#gÈ?q}zUg#zpgAo¬gOuUgO 0ª'eh{szUg %gu4q} ³ oc Q Y¸
! #"%$'&(*)
acb#g^¡r?e¤gfz{s½{s¤%|xgA¦uUoª uUb?g{³ª³ gOup {s ÈupbBqu¿ ³ª³ªeh?³ gfehgOuupb?g^Bq}z4q}³ ³ªgO³G{s¤%|xgA¦uAÈ6qs# upb?g
opb#qsBg {s½upb?g«¡ªzpupr#qs³v?{% %gq}zUzUqEw ¿b#gfzUg {s¤%|xgA¦u4o{s½kuUb?gf{s³ ³ªgA¦uUª{¿ª³ ³¤g]eqs?BgA {s Èq}zUg
opgOLK#gA ¿ªupb? ]uUb?gWux¿{0¤?z4qs<JsgfuUokq½¾uUgfzkupb?gW¯>G HaJgfw¡¿{sz4 'ªNupgOz¬½°qg¸acb?gfzUgWqszpgWo¬gO«sgOzUqs³ ¿cqEw¡o
uU{ K?t upb#g¡r?e¤BgOz{}½k{s¤%|xgA¦uUoW uUb?g {³ª³ gOup {s ¸ acb?g'gt%?zUgOoUo¬ {s eqEw ¤BgÂq} uUgfgfzh«q}³ r?gsÈ
qs] NupgfzU«q}³,{}½ªNupgOsgOz«q}³ r?gAofÈ q½£r?#up {s {szupb?g,+.-/+opw¡e¤{s³Y¸acb?´o³´qupupgOzk{%up {sehgOq}BovuUb#qu
uUb?gh¡r?e¤gfz{s½{¤%|xgOuUo´o4b?{opgf quzpr#uUªehg^ %gOBgO# % ?'{supb?g^qE«qsª³´q}¤?³ gWzpgAo¬{r?zUfgOoW¢£Y¸g¸hupb?g
¡r?e¤BgOz{s½ ?gfux¿{z'JW?{% %gOoª½ {s#gqsoUopr?ehgupbBqucgOqs4b{s¤%|xgA¦uc ocqsoUopª?gO WuU{{?³ªwh{?gv?{% %gE©¦¸Gacb?g
opb#qsBg{s½Dupb?g«¡ z¬uUr#q}³B?{% %gvqszpz4qEw´oºq}h{%up {s#qs³##qszUqsehgupgOz,upb#q}u %gAopfzp ¤gOo b?{¿{¤%|xgOuUo er#oxu¤Bg
{zpNq}?´opgO F¸6«¡ªzpupr#qs³#?{% %gq}zUzUqEw´oGrBo¬gA %r?zUª? ?qu4q % o¬upzU ¤?r%up {s{s½ er?³ªup´ % ehgf#opª{#q}³q}zUzUqEw%oO¸
¯¨u^ # %´fq}upgAoWupb?g¡r?e¤BgOz{}½{s¤%|xgA¦uUoWuU{ ¤Bg %´o¬upzUª¤?r?upgO {q ª«gf %ªehgO#o¬ {s!¢£{s½qs qszpz4qEw?©
h$#
h
½£{z¿b?´4b q' %´oxuUzp ¤?r%uUª{´oopBgALK#gO F¸ b?gO upb?´o#qszUqseWgfupgOz´o{sehªu¬uUgO q}# ¿b?gf uUb?gfzUgq}zUg
opgf«gfz4q}³s ?ªehgfBo¬ {s#o q}zUzUqEw%oFª«gfqo #qszUqseWgfupgOzUo {}½#q}{sgfz4qup {s ÈfuUb?gËGtNuUgf# ?gO ¡§¨¯>GIH{eh?ª³ gfz
f{seh?r%uUgOoqÂopb#q}gh{}½upb?g«¡ z¬uUr#q}³ #{¡ ?g^q}zUzUqEwupbBquequ44b?gOokuUb?g¡r?e¤gfz{s½{¤%|xgOuUor#opgO ¸¯±
®6 sr?zUg²¡¥s%È?ªuv´ozUgNr? zpgA 0upb#q}uupb?g K#zUo¬uv % ehgf#opª{Â{}½,upb#g«¡ªzpupr#qs³ ?{% %gqszpz4qEw^´oqer?³uUª#³ªg{s½
Q?¸µ?³ wupb?g{BgOzUq}up {s0er?³ªup ?³ wr#opgOoqWer?³uU§± % ehgf#opª{#q}³ qszpz4qEwhªuUb?g³ª´o¬u{}½,u4o#q}z4q}ehgfupgfz4oO¸
¯¨uzUgNr? zUgOoupb#q}uupb?gXK#zUo¬u % eWgO#opª{ {s½ºuUb?g^equUzpªt]erBoxu¤g^ %´oxuUzp ¤?r%uUgO F¸acb#gfzUg½£{szUgsÈF{¤%|xgOuUo
¿ ³ ³ ¤Bg{zpNq}?´opgO ^qoq«gOup{szA¸
( ) (/ (*!
Gkqu4q0 ? o¬upzUª¤#r%up {s oopBgALK#gO ]r#o¬ ?0upb?gh %´oxugJgfw¡¿{zU '¤g½£{zpgupb?gWuxw¡g{s½ºgOq4b]#qszUqseWgfupgOzup{
¤gv %´o¬upzUª¤?r?upgO ¸¯±^®6 sr?zUg²#È{sgfz4qup {sWer#³uUª?³ wWb#qso,ux¿{#qszUqseWgfupgOzUoc¢£eq}upzUth+q}# h«gOup{sz~c©
¿b# 4b qszpg ? o¬upzUª¤#r%upgA F¸v½¾uUgfzupb?gW %´oxu Jsgfw¡¿{sz4 FÈB ? o¬upzUª¤#r%up {sÂeh{% %g½£{zvgAqs4b q}zUz4qEw % eWgO#opª{
´oopBgALK#gO F¸^acb#g +.-*+ # %´fquUgOokuUb#quuUb?g^{zpzUgOopB{# % ?'q}zUzUqEw % ehgf#opª{´o?{su %´oxuUzp ¤?r%uUgO F¸
G´oxuUzp ¤?r%uUª{eW{% %gfq}¤g]gOuUb?gfz»5H,µ~:b {z~ ~:H ¯p~¸ ?{+ %´oxuUzp ¤?r%uUgO #qszUqseWgfupgOzOÈqso
«gOup{sz»ÈB ozUgf?³ OquUgO 'q}eh{s#^gOq4b{¤%|xgOuv{}½ uUb?gf{s³ ³ªgA¦uUª{ ¸&Gv´oxuUzp ¤?r%uUª{ eh{% %gOoq}zUgo¬ ehª³´q}z
uU{Wupb?g{?gOo %gK#?gA 0¤¡wÉvyº® ¢°É sb'y,gfzp½£{szUeq}#fgk®#{szpupz4q}B©¸
~{³ª³ gOup «sgk{sgfz4qup {s oqWo¬ eh?³ gk¿cqEwWup{WBgOz¬½£{zpe3f{seh?r%u4quUª{#o{s^uUb?g«q}³ r?gOozUgupr#zp?gA ^¤¡w
uUb?g{¤%|xgOuUo¤gf³ {s?ª#hup{uUb?g{³ª³ gOup {s ¸~{s³ ³ gO¦uUª«g{sgfz4quUª{#oq}zUggfzp½£{szUeWgA ¤Nw0upb#goxuUr?¤ qu
uUb?gf³ª gfNuop ?gs¸]~{s³ ³ªgA¦uUª«g{sgfz4qup {sBoq}zUg^q}³ ³ª{¿gO {s#³ªw {s oUfq}³´q}zuxw¡gOoO¸]µBgOzUq}up {s oJqs³º
uUb?gW?zpgO«¡ª{r#ogft%qseh?³ªgÈDª³ ³ªrBoxuUzUq}upgOoupb?gWr#opg{s½Gupb?´ok?gf¿gft¡upgfBo¬ {s ¸k¯± uUb?´ovgft%qseh?³ªgÈupb?ghfopr?e
Jgfw¡¿{sz4 # %´fq}upgOo upb#q}uGupb?gv«Eqs³ªr#gzpgfupr?zU?gA ¤¡wupb?g{BgOzUq}up {sh´o,upb?gko¬r#e/{}½ qs³ª³%uUb?gv«qs³ªr?gAo s «sgO
¤¡wqs³ª³F{¤%|xgOuUoc¤gf³ {s?ª#uU{hupb?gf{s³ ³ªgA¦uUª{ ¸
6$ & ) (-f ) 0c,&f m&( ( &6)1345 5
h )0)^"?
·kgO?gfz4quUª{ {}½oxuUr?¤ q}B oJgf³ gup{ {% %gOo½£{szBq}z4q}³ ³ªgO³ {s¤%|xgA¦uUoq}³ ³ª{¿>up{]ehqs#q}gWupb?g{s³ ³ gO¦uUª{
{s½{s¤%|xgA¦u4oqso0q opª#s³ g gfNupªuxw upb¡r#o{eW#³ªw¡ ? ¿ªupbuUb?g]uUzUqs#op#q}zUgf#fw zUgNr? zpgOeWgONuO¸/acb?gAo¬g
f{% %gOoOÈ¡sgf#gfz4qupgA h¤¡w^q?gO¿+¯>G Hf{seh? ³ªgOzOÈ%q}zUgop³ ªbuU³ªw %DgfzUgfNu½£zU{se3o¬upr#¤0q}B o'Jsgf³ guU{sf{% %gOo
qopop{%´quUgO W¿uUb^oxu4q}# #q}z4 ~µklv»+{s¤%|xgA¦uO¸ acb?gOw¤{}uUbb#q}B %³ªgupb?gk % o¬upzU ¤?r%up {s{s½ ?qu4qq}eh{s#
uUb?g{s³ ³ gO¦uUª{{s½ {s¤%|xgA¦u4oqs# uUb?go¬ er?³ªuUqs?gf{r#oª¡«s{%Oqup {s{}½qs{sgfz4quUª{^{s0gf«gfzUwW{¤%|xgOu{s½
uUb?g{³ª³ gOup {s ¸
a{Âb#q}B %³ªg0 % o¬upzU ¤?r%upgA ?qu4q?È,q'?gf¿2 ?qu4quxw¡Bgb#qo¤gfgf fzpgAquUgO F¸acb? o?gf¿>uxw¡BgÈ6Oq}³ ³ªgA
? o¬upzUª¤#r%upgA 0qszpz4qEw¢° ?qszpz4qEw?©¦ÈN oc¤#qo¬gA ^{uUb?g~µkl»c opgNr?gO#gq}¤#³ªgkup{ho¬up{szUgk«Eqszp {srBo %½£{zpeq§
uUª{q}¤{sr%uG ?q}uUq %´oxuUzp ¤?r%uUª{ ¸ acb?gcr#o¬g{s½opgNr?gO#g´o,zpg Nr?ªzUgO up{opr??{szpuº{³ª³ gOup {sW{}½B{¤%|xgOuUo
½£{zv¿b?´4bÂuUb?gËGtNuUgf# ?gO ¡§¨¯>GIH uUgfzp½°qsfg %{¡gOo?{}uk?zU{«N´ %gqXK?t%gO ¡r?e¤BgOz{s½G{s¤%|xgA¦u4of¸¯±]o¬rB4b
qfqo¬gÈ, #quUq upb#q}uWbBqsoup{]¤g'o¬gOuup{gOqs4b {s¤%|xgA¦u{s½upb?g'{³ª³ gOup {s ?gfgf# ?o{s upb?g¡r?e¤gfz
{s½{¤%|xgOuUo¤gf³ {s#s ?up{'upb#g{³ª³ gOup {s ¸a{ JsgOgfupb?g0o¬*[fg{s½uUb?g^sgO?gfz4quUgO oxuUr?¤ qsoopeq}³ ³ºqso
{oUopª¤?³ gsÈ%qs³ª³upb#gkBq}z4q}ehguUgfz4oº{s½q}0{sgfz4qup {s0¤BgO³ª{?s ?up{hqBq}z4q}³ ³ªgO³B{¤%|xgOuOÈ¡upbBquq}zUg{s½q}zUzUqEw
uxw¡gOoOÈ?q}zUgehqs?gO 0up{ %´oxuUzp ¤?r%uUgO 'q}zUz4qEwWgO«sgO0ª½uUb?gfwq}zUg?{}u %´oxuUzp ¤?r%uUgO #qszUqseWgfupgOzUoO¸
F
m-<
CORBA ORB
Parallel client
IDL Skel Object
Impl.
MPI Communication layer Parallel CORBA Object
...
Object 1
Ext.-IDL stub
Object 2
Ext.-IDL stub
Object n
Ext.-IDL stub
Sequential server
® sr#zpg O ¯±¡«{¡OquUª{^½£zU{seqWy q}z4q}³ ³ªgO³~µkl»c {s¤%|xgA¦ucup{^qho¬uUq}B ?q}z4 ~µkl»c!{¤%|xgOuO¸
acb?g f{s#fgf%uh{}½#qszUqs³ª³ gf³c{s¤?|xgO¦uh´o?{}uzUgOo¬upzU upgA up{ q opgNr?gfNuU qs³cf³ª gfNuqs¤?³ªg0up{ ¤? # up{
q #q}z4q}³ ³ªgO³G{s¤?|xgO¦uA¸'¯¨u´o?gAgOoUoUq}zUw up{q}³ ³ª{¿ ¤B{supb uUb?gOq}³ ³ªgOzq}B upb?gOq}³ ³ªgOgup{]¤Bg0#q}z4q}³ ³ªgO³G{sz
opgNr?gONup´q}³Y¸ ¡upr?¤Âq}B o'JsgO³ªgfup{0{% %gAocb#qE«sgkuU{WbBq}# %³ g«q}zUª{r#oco¬ªuprBqup {sBof¸
acb?g:K#z4o¬u,opuUr#quUª{´o,¿b?gfupb?gf³ª gfNu o,opgNr?gOuU qs³%q}# upb?gopgfzU«sgfz6´o6q#qszUqs³ª³ gf³N{s¤%|xgA¦uA¸,¡rB4b
Oqsopg´o ³ª³ r#o¬upz4qupgA ] ® sr#zpg?¸W¯±upb?´oo¬ªuprBqup {s ÈFupb?g^o¬upr#¤gf?gOzUq}upgO ]¤¡wÂupb?ghË t¡uUgf# %gA ¡§¨¯>GIH
f{seh? ³ªgOzcb#qsouU{W¤#r?ª³´ 'q}# opgf# o¬ er#³u4q}?gO{sr#op³ªw0qzUgNr?gAoxucup{hgAqs4b{s¤%|xgA¦u{}½upb?gf{s³ ³ªgA¦up {s ¸6¯¨u
bBqsoqs³ op{'up{]oUfq}u¬uUgfz ?q}uUq qseh{s?'uUb?g^{s¤?|xgO¦u4o¤gf³ {s?ª#'up{ÂuUb?g0f{s³ ³ªgA¦up {s ½£{³ª³ {¿ª#'upb?g #quUq
? o¬upzUª¤#r%up {s opBgALKBfq}up {s ¸¶Â{szUgf{«gfzAÈqsogt%?³´q} ?gO uUb?g?zUgf«¡ {sr#oo¬gA¦uUª{ È,uhfq} BgOz¬½£{zpe
op{sehg{eh?r%uUq}up {s¿b?gfÂqh{³ª³ gOup «sgk{sgfz4quUª{0´oo¬gOfKBgO 0½£{szqW#qszUqseWgfupgOzO¸
®6 sr?zUg ³ ³ªr#o¬upz4quUgOoqopgOf{s# o¬ªuprBqup {s¿b?gOzpgkupb#g³ ªgOu´ocªuUopgf³ª½,qW#qszUqs³ª³ gf³F{¤%|xgOuqs# 0upb?g
Oq}³ ³ªgOg´oq'oxu4q}# #q}z4 ~µkl»c {s¤%|xgA¦uA¸¯± o¬rB4b OqsopgsÈDupb#g^oxuUr?¤bBqsokup{'gfzp½£{szUe eh{szUgWf{seh?³ gt
{BgOzUq}up {s#o¤g½£{szUgOq}³ ³ª ?upb?g{¤%|xgOuO¸,¯¨½ #qszUqseWgfupgOzUo{}½qs{BgOzUq}up {sqszpgk % o¬upzU ¤?r%upgA FÈ¡upb#go¬upr#¤
bBqsoup{hq}upb?gOz ?qu4q½£zU{se{s¤%|xgA¦uUoc¤gf³ {s#s ?uU{Wupb?g{³ª³ gOup {s?zUª{zuU{hª¡«s{J¡ª?upb#gk{BgOzUq}up {s ¸
¶ {szUgf{«sgOzOÈs{s?³ wh{s?g{s¤%|xgA¦u{s½ upb#gkf{s³ ³ªgA¦up {sbBqsoºup{W¤Bgo¬gO³ªgA¦uUgO huU{ N«{SJgupb?gk{sgfz4quUª{hup{upb?g
~µklv»2{¤%|xgOuquupb#go¬gOzp«gfzop %g¸acb?g^o¬upr?¤ ´ozUgOopB{#opª¤?³ gW½£{szopgf³ gOup ?Â{s?g{¤%|xgOu{}½upb?g
f{s³ ³ªgA¦uUª{0uU{^gfzp½£{szUeuUb?g N«{%fquUª{ ¸acb?g{supb?gOz{s¤%|xgA¦u4o{}½,uUb?g{³ª³ gOup {sÂb#qE«gup{^¿cq}ªuvr?NuUª³
uUb?g{eW#³ªgfup {s]{s½ºuUb?ghª¡«s{%Oqup {s]{sgfz4qup {s ¸¡ eW ³´q}z?zU{s¤?³ gfeokq}zU opg¿b#gf q#qszUqs³ª³ gf³6{s¤?|xgO¦u
¡«s{JsgOoqs {sgfz4qup {sup{q}?{supb?gOz#q}z4q}³ ³ªgO³G{s¤?|xgO¦uA¸0¯¨½cuUb?gfzUg oq %´oxuUzp ¤?r%uUgO #qszUqseWgfupgOzOÈ #quUq
bBqsouU{ ¤gzUgO %´oxuUzp ¤?r%uUgO qf{zU ?ª?'uU{ ¤{}upb upb?g ?qu4q %´oxuUzp ¤?r%uUª{ o¬gOfKfquUª{ {}½cupb#g0fqs³ª³ gfz
qs# uUb?g{s#g{s½ upb#gOq}³ ³ªgOgs¸Ggfgf# % ?h{s0upb#gk¡r?e¤BgOz{}½ {¤%|xgOuUoq}uuUb?g³ ªgONuop´ %gkqs# qucupb?g
opgfzU«sgOzkop´ %gsÈFuUb?goxuUr?¤ b#qsoup{Âopgf# {s#g{zopgf«gfz4q}³6zpg Nr?gOo¬uUok{sz¿cq}ªu½£{szkupb?gf{seh?³ gup {s {}½upb?g
¡«s{%fq}up {s{sgfz4qup {s ¸,¡w¡#4b#zp{? oUquUª{qs# h ?qu4q % o¬upzU ¤?r%up {sh{z zpgA % o¬upzU ¤?r%up {shq}zUggfzp½£{szUeWgA
rBo¬ ?Wupb?g¶ yG¯ehgAopoUq}g#qopop ?h³ qEwgfz½£{sz¤{}uUb0gfzp½£{szUeq}#fgqs# 0B{z¬u4q}¤? ³ªªuxw^zUgOqo¬{#of¸
h$#
h
@ (68"&NH !@ )
@ A)H
5(6( +!8C 9%%9%H &&(% 3
?
%6 " &&(% 4BA@CN MVS9% 9"PR3
?
%6'&(
?
&&% % BAV@;MVS9% 9"P 3
9%H &&( ! &
?
&&(%C >BAV@;1P 3
3
3
®6ªr?zUg1OGÊvqseW ?opgfzU«N´gk{sgfz4quUª{#oup{b#qs# %³ g#q}z4q}³ ³ªgO³F{s¤%|xgA¦uA¸
¯±upb?gc?zUgf«¡ {sr#o#qszUqssz4q}?b#oOÈAeW{% %LKBOqup {sBo uU{vuUb?goxuUr?¤h{% %gsgf#gfz4qup {s?zp{%fgOoUo ¿gfzUgºeq} %§
³ w ?gOoUzUª¤gO F¸0acb?go'Jsgf³ guU{s b#qsoqs³ op{'up{¤geh{% %KBgO up{ opr??{szpu#qszUqs³ª³ gf³ {¤%|xgOuUoO¸acb?g^{% %g
gf?gOzUq}up {s?zU{¡fgOoUo{#op o¬uUo o¬up{szU ?ª?½£{szUehq}up {s qs¤B{r%uupb?gW ?qu4q %´oxuUzp ¤?r%uUª{ o¬gOfKBOquUª{
½£{zgOq4b %´o¬upzUª¤?r?upgO 'Bq}z4q}ehguUgfzA¸,acb# o %½£{zpequUª{0´o?gAgAopoUq}zUwhup{gO#o¬r#zpg ?q}uUqhzUgO %´oxuUzp ¤?r%uUª{
¿b#gf N«{SJ¡ ?q}{BgOzUq}up {sh½£zU{se2q#q}z4q}³ ³ gf³?{¤%|xgOuGup{gOuUb?gfzcqopgNr?gOuU qs³?{szq#qszUqs³ª³ gf³?{¤%|xgOuO¸
¯±?½£{szUehq}up {s]o¬up{zpgA  upb#gho'JsgO³ªgfup{ {}½GuUb?ghfq}³ ³ gfzk¿ª³ ³ ¤BgWs «sgOÂup{0upb#gho¬upr#¤qsoUop{¡f q}upgA 'up{0upb?g
Oq}³ ³ªgOgs¸
h )0 25 & <c Dhf ( 00 ¼&6&---h.983:3"
;/= $ º
acb#ghÊq}eh ?'%gfzU«N´gW¤gf³ {s?NovuU{upb?g~µkl»c9~{seheh{s µ¤%|xgOu¡gOzp«¡´gAoW¢¨~µ?©¦¸F¯¨uqs³ª³ {¿oq
rBo¬gOzup{Âeq}? ?r?³´quUg{s¤%|xgA¦u4okupb?zU{sr?b opw¡e¤{s³ hBq}ehgOo #o¬upgOq {}½cr#o¬ ?'{s¤?|xgO¦uzUg½£gOzpgO#gAof¸^
opw¡e¤{s³ Bq}ehg´ovqsoUop{¡f q}upgA 0¿ªupb]{s?³ w{?g{s¤?|xgO¦uzpgf½£gfzUgf#fgs¸ca {^bBq}# %³ g#qszUqs³ª³ gf³ {s¤%|xgA¦uUoupb?g
oUq}ehg¿cqEwsÈuº´oG#gOgAopoUq}zUwuU{¤?ªB ^qo¬w¡e¤B{³ª´c#q}ehguU{q{³ª³ gOup {sh{}½F{¤%|xgOuºzpgf½£gfzUgf#fgOoO¸acb?gAo¬g
zUg½£gOzpgO#gAocq}zUg?gOgO %gA ¤Nw^upb?go¬upr?¤'¿b?gOqs0{BgOzUq}up {s oOq}³ ³ªgA ^uU{qBq}z4q}³ ³ªgO³F{s¤%|xgA¦uO¸ a{o¬{³ª«g
uUb?´o#zp{¤?³ªgOe'È,ux¿{B{Nopopª¤#ª³ uUªgAoqszpg0{ DgfzUgO F¸ acb?gK#z4oxuW{s?g{#o¬´o¬uUoª %gOopª? ?qo¬gO#q}z4quUg
Bq}ehª#0opgfzU«N´g½£{szk#q}z4q}³ ³ªgO³ {¤%|xgOu¿b?gOzpgAqsouUb?gopgOf{s# {s?g o¤#qsopgO {sÂuUb?ggft¡upgfBo¬ {sÂ{s½Gupb?g
gft% o¬up ?h#q}eh ?ho¬gOzp«¡´gOoO¸ acb?gOopgkux¿{hq}#?zp{Nqs4b?gAoºbBqE«sgupb?gOªz{¿'qs %«qsu4q}gOoq}# %z4qE¿¤#qs<J%oO¸
acb#g?zU{s{opgO Âop{s³ r%up {s´o¤#qo¬gA '{s'uUb?ggftNuUgf#op {sÂ{}½ uUb?ggft% o¬up ?^#qsehª?0o¬gOzp«¡´g¤?r%ufqs ¤Bg
uUb?gW¤#qsop o{}½ºupb?g %gAo¬ s {s½q0?gf¿ Bq}ehª#0opgfzU«N´g¸® sr#zpgª«gOovupb?gW¯>GIH opBgALKBfq}up {s uUb#qu
#zpgAo¬gOu4o?gO¿!uxwNgOokq}B '{sgfz4qup {sBoqs ? ?gO 'uU{upb?gWoxu4q}# #q}z4 Âo¬gOfKBOquUª{ª {zU ?gfzuU{o¬r#?B{z¬u
uUb?gopwNe¤B{³ª´k#q}eh ?h{}½6#q}z4q}³ ³ªgO³F{s¤%|xgA¦u4of¸
µgfz4quUª{#o
" &&%
È
&(
?
&&(%C qs#
! &
?
&&(C %
?³´qEw zUg§
opgO¦uUª«gf³ wWupb?gopqsehgvzU{s³ gqsoºupb#g¤? # FÈ%r#N¤#ª# 0q}# ^zpgAo¬{³ª«g{sgfz4quUª{#o ?gK#?gA ^¤¡wWupb?go¬uUq}B ?q}z4
Bq}ehª#opgfzU«¡ fgs¸hacb?g u¬uÊq}ehgWuxw¡Bg{zpzUgOop{s# ?ovup{Âq' ?q}uUq'oxuUzprB¦upr#zpgupb#q}u{u4q} #oo¬gO«sgOzUqs³
%½£{zpequUª{opr#4b'qsouUb?go¬w¡e¤B{³ª´k#q}ehgqsoUo¬{%f q}upgO ¿uUbupb?g#qszUqs³ª³ gf³F{¤%|xgOuO¸
F
m-<
, @"&K 9/7, @"&UBVP 3
@ )*
?
( "V (&&(%C % B(>M 9"PR3
@ )*
?
( &(
?
% && B=C M 9P 3
®6ªr?zpggVBO,lgfs´o¬upz4qup {s0{}½ qW#q}z4q}³ ³ªgO³D{s¤%|xgA¦uvqucuUb?go¬gOzp«gfzop %g¸
9!/ @ )*
?
( ! &
?
% &&% B=CP13
! ?
/( %!U 4B 9!P 3
! ?
A@8"&A"&5>BL4M E M H"P 3
®6ªr?zUgBOG»ª# ?ª?WuU{hqhBq}z4q}³ ³ªgO³{¤%|xgOur#o¬ ?qopwNe¤B{³ª´k#q}ehg¸
vW{¤%|xgOuB|x{ª#ª?qk{³ª³ gOup {s ¡«s{JsgOo upb#g
" &&(%
eWgfupb?{% F¸,acb?´o,ehgupb#{¡ Wo¬uUq}zpuUo
¤¡wW4b?gO<J¡ ?¿b?guUb?gfzºqf{s³ ³ªgA¦uUª{W{s½zUg½£gOzpgO#gAo,¿uUbhupb?gopqseWgc#qsehgb#qsoGqs³ªzUgOq %w¤gfgO^zUgOquUgO F¸
acb#gf È#upb?gzUg½£gOzpgO#g{s½,upb?g{¤%|xgOuG|x{s ? ?uUb?g{³ª³ gOup {s'´ovqs # %gO F¸ b?gO q}Â{¤%|xgOu¿qsu4ocup{
³ gOqE«gupb?gf{s³ ³ªgA¦up {s Èsªufqs³ª³´o6upb?gv³ªgAqE«sg
f{s³ ³ªgA¦uUª{ehguUb?{% FÈ¿b# 4bhzUgfeh{«sgAo uUb?g{¤%|xgOuGzpgf½£gfzUgf#fg
½£zU{se upb#gWf{s³ ³ªgA¦up {s ¸vacb?´ovehguUb?{% ´oqs³ op{ª 4b#q}zUsg{s½,½£zpgOgf ?^uUb?g#qsehgqsoUop{¡f q}upgA 0¿ªupb]upb?g
f{s³ ³ªgA¦uUª{k¿b#gfªu ¤gO{ehgOo gOeh%uxws¸6acb?gºgft%qseh?³ªgÈOª«gf ®6ªr?zpg,V#ÈEª³ ³ªrBoxuUzUq}upgOoFupb?gzpgOs´oxuUzUq}up {s
#zp{%gAopocq}uupb?gopgfzU«sgOzop ?gs¸
uuUb?gf³ª gfNuop ?gsÈupb?gOq}³ ³ª ?Â{s½uUb?go¬uUqs# ?q}z4
! &
?
&(&(%
ehguUb?{% zpgfupr?zU#oq
opgNr?gO#g{}½º{¤%|xgOuUoO¸]ª¡«s{%Oqup {sÂ{s½ upb?g ehguUb?{% sgfuUokqzUg½£gfzUgfBguU{^uUb?g#qszUqs³ª³ gf³
{¤%|xgOuqsoc ³ª³ r#o¬upz4qupgA ¤¡wupb?ggt?qseW#³ªgopb?{¿ ®6ªr?zpg#¸
+c, & 0
a{opb?{¿ upb?g¤BgO?gK#uUok{}½G#qszUqs³ª³ gf³,~µkl»c {s¤?|xgO¦u4ovf{seh#q}zU ?hup{0{}upb#gfzo¬uUqs# ?qszU Âqs??zU{qs4b#gOoOÈ
¿ggfzp½£{szUehgO 'q}Âgft¡gfzU eWgONuupb#q}ukf{s#op o¬uUoª gft?4b#q}?ª#hq^ehq}upzUt'¤gux¿gfgf'ux¿{^¶ÂyG¯¨§¨¤#qo¬gA
Bq}z4q}³ ³ªgO³s{% %gAo gO#fqs#o¬r#³ q}upgO Nup{gOuUb?gfz,o¬uUq}B ?q}z4 ~µkl»c {s¤?|xgO¦u4o {z #qszUqs³ª³ gf³%~µkl»c {s¤%|xgA¦u4of¸
®6 sr?zUg iO o¬b?{¿o½£{sr?z %DgfzUgfNu0o¬upz4quUgfªgAohup{ uUzUqs#o¬½£gfz ?q}uUq ¤gux¿gfgOupb?g]ux¿{ gf#Oq}#opr?³´qupgA
Bq}z4q}³ ³ªgO³ {% %gAof¸kacb?g K#z4o¬uoxuUzUq}upgOsw ¢°®6ªr?zUg^iO}§¨qN©{#o¬´o¬uUo ]opgf# ?ª?0 ?qu4qupb#zp{r?sb qs #~¯p¯
KB³ªgo¬up{szUgO {shqÊv® K#³ªgopgfzU«sgOz6op{kupb#q}u6uUb?gcux¿{~µkl»c {s¤?|xgO¦u4o,³ª{%OqupgA { %DgfzUgfNuGeqs4b? ?gOo
Oq} bBqE«sg0qffgOoUouU{ªuO¸ ¡ #fg' #quUq] oWgO#{% %gA B~¯¬¯¦È uUgfzU{sgfz4q}¤? ³ uxw ¤Bgfux¿gOgf upb?gux¿{
eq4b?ª#gOo´oq4b?ªgO«sgA F¸ acb#gopgO{# oxuUzUq}upgOsw ¢L®6ªr?zpg iA§¨¤B©h´oopªeh ³ qszup{ upb?g #zpgO«N {srBo{s?g
¤#r%uh ?Dgfz4o¤¡w uUb?g0gO#{% % ?]upgO4b#?Nr?g¿b?´4b ´o¤BqsopgO { IGkl¸ ¯± uUb#qufqo¬gÈ,upb?gK#³ g0´oq
¤#ª#qszpwh{?g¤#r%u NupgOzp{BgOzUqs¤?ª³ ªuxwW´ooxuUª³ ³ qs4b? gf«gO F¸,acb?gupb? z4 o¬upz4qupgOsw{#op o¬uUoªo¬gO# % ? #quUq
gONup zpgO³ªwuUb?zU{sr?buUb?gWµkl» ¢L®6ªr?zpgiA§±O©¸G® #qs³ª³ wsÈ%uUb?g½£{sr#z¬uUb'o¬upz4quUgfw^ o¤#qsopgO 0{supb#gr#o¬g{s½
Bq}z4q}³ ³ªgO³B~µkl»c{s¤%|xgA¦uUo¢L®6ªr?zpgiA§± #©¦¸zGkquUqqszpg %´o¬upzUª¤?r?upgO hqseW{?kupb?g{s³ ³ gO¦uUª{{s½{¤%|xgOuUo
¢Lop4b#gO %r?³ gfzAÈ¡{% %gikq}# ^f{% %gIQs©¸,¯±upb?g½£{sr#zGupgAoxucfqo¬gAofÈ¡ ?qu4q{zpzUgOop{s# up{Wqux¿{ % ehgf#opª{#q}³
eq}upzUt^uUb#qu´o %´oxuUzp ¤?r%uUgO ¤¡w^¤?³ {%<Jq}eh{s#uUb?g%¶Ây/G?zU{¡fgOoUo¬gAo{}½,¤B{supbÂ{% %ghiq}# 'f{¡ ?ggQ?¸
h$#
h