<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8">
<meta name="generator" content="pdf2htmlEX">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<link rel="stylesheet" href="https://static.pudn.com/base/css/base.min.css">
<link rel="stylesheet" href="https://static.pudn.com/base/css/fancy.min.css">
<link rel="stylesheet" href="https://static.pudn.com/prod/directory_preview_static/628930c116e0ca714103a5b6/raw.css">
<script src="https://static.pudn.com/base/js/compatibility.min.js"></script>
<script src="https://static.pudn.com/base/js/pdf2htmlEX.min.js"></script>
<script>
try{
pdf2htmlEX.defaultViewer = new pdf2htmlEX.Viewer({});
}catch(e){}
</script>
<title></title>
</head>
<body>
<div id="sidebar" style="display: none">
<div id="outline">
</div>
</div>
<div id="pf1" class="pf w0 h0" data-page-no="1"><div class="pc pc1 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/628930c116e0ca714103a5b6/bg1.jpg"><div class="t m0 x1 h2 y1 ff1 fs0 fc0 sc0 ls0 ws0">Parallel Object Programming in C++</div><div class="t m0 x2 h2 y2 ff1 fs0 fc0 sc0 ls0 ws0">User and Installation Manual</div><div class="t m0 x3 h3 y3 ff2 fs1 fc1 sc0 ls0 ws0">The POP-C++ T<span class="_ _0"></span>eam</div><div class="t m0 x4 h4 y4 ff1 fs1 fc1 sc0 ls0 ws0">Grid & Cloud Computing Group</div><div class="t m0 x5 h5 y5 ff3 fs2 fc1 sc0 ls0 ws0">http://gridgroup.hefr<span class="_ _1"></span>.ch</div><div class="t m0 x6 h5 y6 ff3 fs2 fc1 sc0 ls0 ws0">popcinfo@hefr<span class="_ _1"></span>.ch</div><div class="t m0 x7 h5 y7 ff3 fs2 fc1 sc0 ls0 ws0">Software V<span class="_ _1"></span>ersion : 2.5</div><div class="t m0 x5 h5 y8 ff3 fs2 fc1 sc0 ls0 ws0">Manual V<span class="_ _1"></span>ersion : 2.5-a</div><div class="t m0 x8 h6 y9 ff4 fs3 fc1 sc0 ls0 ws0"><span class="fc2 sc0">P</span><span class="fc2 sc0">a</span><span class="fc2 sc0">ra</span><span class="fc2 sc0">l</span><span class="fc2 sc0">l</span><span class="fc2 sc0">e</span><span class="fc2 sc0">l</span><span class="fc2 sc0"> O</span><span class="fc2 sc0">bj</span><span class="fc2 sc0">e</span><span class="fc2 sc0">c</span><span class="fc2 sc0">t</span><span class="fc2 sc0"> P</span><span class="fc2 sc0">rogra</span><span class="fc2 sc0">m</span><span class="fc2 sc0">m</span><span class="fc2 sc0">i</span><span class="fc2 sc0">ng i</span><span class="fc2 sc0">n C++</span></div><div class="t m0 x8 h7 ya ff5 fs3 fc1 sc0 ls0 ws0"><span class="fc2 sc0">U</span><span class="fc2 sc0">s</span><span class="fc2 sc0">e</span><span class="fc2 sc0">r</span><span class="fc2 sc0"> an</span><span class="fc2 sc0">d</span><span class="fc2 sc0"> I</span><span class="fc2 sc0">n</span><span class="fc2 sc0">s</span><span class="fc2 sc0">tal</span><span class="fc2 sc0">l</span><span class="fc2 sc0">ati</span><span class="fc2 sc0">on</span><span class="fc2 sc0"> M</span><span class="fc2 sc0">an</span><span class="fc2 sc0">u</span><span class="fc2 sc0">al</span></div></div><div class="pi" data-data='{"ctm":[1.611639,0.000000,0.000000,1.611639,0.000000,0.000000]}'></div></div>
</body>
</html>
<div id="pf2" class="pf w0 h0" data-page-no="2"><div class="pc pc2 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/628930c116e0ca714103a5b6/bg2.jpg"><div class="t m0 x8 h6 yb ff4 fs3 fc1 sc0 ls0 ws0">Parallel Object Programming in C++</div><div class="t m0 x8 h7 yc ff5 fs3 fc1 sc0 ls0 ws0">User and Installation Manual</div><div class="t m0 x8 h6 yd ff4 fs3 fc1 sc0 ls0 ws0">Manual version : 2.5-a, October 2012</div><div class="t m0 x8 h6 ye ff4 fs3 fc1 sc0 ls0 ws0">Copyright(c) 2005-2012 Grid and Cloud Computing Group</div><div class="t m0 x8 h6 yf ff4 fs3 fc1 sc0 ls0 ws0">University of <span class="_ _1"></span>Applied Science of <span class="_ _2"></span>W<span class="_ _0"></span>estern Switzerland, Fribourg</div><div class="t m0 x8 h6 y10 ff4 fs3 fc1 sc0 ls0 ws0">Boulevard de Pérolles 80, CP<span class="_ _1"></span> 32</div><div class="t m0 x8 h6 y11 ff4 fs3 fc1 sc0 ls0 ws0">CH-1705 Fribourg, Switzerland.</div><div class="t m0 x8 h8 y12 ff6 fs1 fc1 sc0 ls1 ws0">http://gridgroup.hefr.ch</div><div class="t m0 x8 h6 y13 ff4 fs3 fc1 sc0 ls0 ws0">Permission is granted to copy<span class="_ _0"></span>, distribute or modify this </div><div class="t m0 x8 h6 y14 ff4 fs3 fc1 sc0 ls0 ws0">document under the terms of the GNU Free Documentation </div><div class="t m0 x8 h6 y15 ff4 fs3 fc1 sc0 ls0 ws0">License published by the Free Software Foundation.</div><div class="t m0 x8 h6 y16 ff4 fs3 fc1 sc0 ls0 ws0">POP-C++ is free software, it can be redistributed or modified </div><div class="t m0 x8 h6 y17 ff4 fs3 fc1 sc0 ls0 ws0">under the terms of the GNU Lesser General Public </div><div class="t m0 x8 h6 y18 ff4 fs3 fc1 sc0 ls0 ws0">License(LGPL) as published by the Free Software </div><div class="t m0 x8 h6 y19 ff4 fs3 fc1 sc0 ls0 ws0">Foundation. It is distributed in the hope that it will be useful, </div><div class="t m0 x8 h6 y1a ff4 fs3 fc1 sc0 ls0 ws0">but without any warranty<span class="_ _0"></span>.</div><div class="t m0 x8 h6 y1b ff4 fs3 fc1 sc0 ls0 ws0">See the GNU General Public License for more details </div><div class="t m0 x8 h6 y1c ff4 fs3 fc1 sc0 ls0 ws0">(LGPLv3).</div><div class="t m0 x8 h6 y1d ff4 fs3 fc1 sc0 ls0 ws0">This work was partially funded by the CoreGRID Network of<span class="_ _3"></span> </div><div class="t m0 x8 h6 y1e ff4 fs3 fc1 sc0 ls0 ws0">Excellence, in the European Commission's 6th Framework </div><div class="t m0 x8 h6 y1f ff4 fs3 fc1 sc0 ls0 ws0">Program and by the University of <span class="_ _1"></span>Applied Sciences of </div><div class="t m0 x8 h6 y20 ff4 fs3 fc1 sc0 ls0 ws0">W<span class="_ _0"></span>estern Switzerland of Fribourg.</div><div class="t m0 x8 h6 y21 ff4 fs3 fc1 sc0 ls0 ws0">The POP-C++ T<span class="_ _0"></span>eam :</div><div class="t m0 x9 h6 y22 ff4 fs3 fc1 sc0 ls0 ws0">Pierre Kuonen</div><div class="t m0 xa h6 y23 ff4 fs3 fc1 sc0 ls0 ws0">T<span class="_ _1"></span>uan <span class="_ _1"></span>Anh Nguyen</div><div class="t m0 xb h6 y24 ff4 fs3 fc1 sc0 ls0 ws0">Jean-François Roche</div><div class="t m0 xc h6 y25 ff4 fs3 fc1 sc0 ls0 ws0">V<span class="_ _4"></span>alentin Clément</div><div class="t m0 xd h6 y26 ff4 fs3 fc1 sc0 ls0 ws0">David Zanella</div><div class="t m0 x9 h6 y27 ff4 fs3 fc1 sc0 ls0 ws0">Marcelo Pasin</div><div class="t m0 xe h6 y28 ff4 fs3 fc1 sc0 ls0 ws0">Laurent W<span class="_ _0"></span>inkler</div><div class="t m0 xf h6 y29 ff4 fs3 fc1 sc0 ls0 ws0">Nicolas Brasey</div><div class="t m0 x8 h9 y2a ff7 fs3 fc1 sc0 ls0 ws0">Pr<span class="_ _1"></span>oblems or questions concerning POP-C++ can be submitted </div><div class="t m0 x8 h9 y2b ff7 fs3 fc1 sc0 ls0 ws0">on the POP-C++ web site or be sent by e-mail to:</div><div class="t m0 x8 h8 y2c ff6 fs1 fc1 sc0 ls1 ws0">popcinfo@hefr.ch</div></div><div class="pi" data-data='{"ctm":[1.611639,0.000000,0.000000,1.611639,0.000000,0.000000]}'></div></div>
<div id="pf3" class="pf w0 h0" data-page-no="3"><div class="pc pc3 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/628930c116e0ca714103a5b6/bg3.jpg"><div class="t m0 x8 ha y2d ff2 fs4 fc0 sc0 ls0 ws0">T<span class="_ _4"></span>able of content</div><div class="t m0 x10 hb y2e ff5 fs5 fc1 sc0 ls0 ws0">...................................................................................................................<span class="_ _5"></span>1 <span class="_"> </span>Overview<span class="_ _1"></span> <span class="_ _6"> </span>1</div><div class="t m0 x11 hc y2f ff4 fs1 fc1 sc0 ls0 ws0">...........................................................................................................................<span class="_ _7"></span> <span class="_ _8"> </span>1.1 Introduction<span class="_ _1"></span> <span class="_ _9"> </span>1</div><div class="t m0 x12 hc y30 ff4 fs1 fc1 sc0 ls0 ws0">....................................................................................................................<span class="_ _7"></span> <span class="_ _8"> </span>1.2 The POP<span class="_ _0"></span> Model <span class="_ _a"></span> <span class="_ _b"> </span>1</div><div class="t m0 x13 hc y31 ff4 fs1 fc1 sc0 ls0 ws0">..................................................................................................................<span class="_ _7"></span> <span class="_ _8"> </span>1.3 System Overview <span class="_ _c"> </span>2</div><div class="t m0 x14 hc y32 ff4 fs1 fc1 sc0 ls0 ws0">........................................................................................................<span class="_ _7"></span> <span class="_ _8"> </span>1.4 Structure of this Manual <span class="_ _d"> </span>2</div><div class="t m0 x14 hc y33 ff4 fs1 fc1 sc0 ls0 ws0">........................................................................................................<span class="_ _7"></span> <span class="_ _8"> </span>1.5 <span class="_ _0"></span>Additional Informations<span class="_ _3"></span> <span class="_ _e"> </span>3</div><div class="t m0 x15 hb y34 ff5 fs5 fc1 sc0 ls0 ws0">.....................................................................................<span class="_ _f"></span>2 <span class="_"> </span>The Parallel Object Model <span class="_ _10"> </span>5</div><div class="t m0 x11 hc y35 ff4 fs1 fc1 sc0 ls0 ws0">...........................................................................................................................<span class="_ _7"></span> <span class="_ _8"> </span>2.1 Introduction<span class="_ _1"></span> <span class="_ _9"> </span>5</div><div class="t m0 x16 hc y36 ff4 fs1 fc1 sc0 ls0 ws0">....................................................................................................<span class="_ _7"></span> <span class="_ _8"> </span>2.2 The Parallel Object Model<span class="_ _0"></span> <span class="_ _11"> </span>5</div><div class="t m0 x16 hc y37 ff4 fs1 fc1 sc0 ls0 ws0">....................................................................................................<span class="_ _7"></span> <span class="_ _8"> </span>2.3 Shareable Parallel Objects <span class="_ _11"> </span>6</div><div class="t m0 x17 hc y38 ff4 fs1 fc1 sc0 ls0 ws0">.............................................................................................<span class="_ _7"></span> <span class="_ _8"> </span>2.4 Methods Invocation Semantics <span class="_ _12"> </span>6</div><div class="t m0 x18 hc y39 ff4 fs1 fc1 sc0 ls0 ws0">.....................................................................................................<span class="_ _7"></span> <span class="_ _8"> </span>2.5 Parallel Object <span class="_ _0"></span>Allocation<span class="_ _3"></span> <span class="_ _13"> </span>8</div><div class="t m0 x19 hc y3a ff4 fs1 fc1 sc0 ls0 ws0">....................................................................................<span class="_ _7"></span> <span class="_ _8"> </span>2.6 Requirement-driven Parallel Objects <span class="_ _14"> </span>8</div><div class="t m0 x17 hb y3b ff5 fs5 fc1 sc0 ls0 ws0">.................................................................................<span class="_ _15"></span>3 <span class="_"> </span>User Pr<span class="_ _1"></span>ogramming Manual <span class="_ _16"> </span>1<span class="_ _0"></span>1</div><div class="t m0 x11 hc y3c ff4 fs1 fc1 sc0 ls0 ws0">.........................................................................................................................<span class="_ _17"></span> <span class="_ _8"> </span>3.1 Introduction<span class="_ _1"></span> <span class="_ _18"> </span>1<span class="_ _1"></span>1</div><div class="t m0 x1a hc y3d ff4 fs1 fc1 sc0 ls0 ws0">...................................................................................................................<span class="_ _19"></span> <span class="_ _8"> </span>3.2 Parallel Objects<span class="_ _3"></span> <span class="_ _1a"> </span>12</div><div class="t m0 x8 h6 y3e ff4 fs3 fc1 sc0 ls2 ws0"> <span class="_ _1b"> </span><span class="ls0">..............................................................................................................<span class="_ _1c"></span>3.2.1 Parallel Classes<span class="_ _1"></span> <span class="_ _1d"> </span>12</span></div><div class="t m0 x1b h6 y3f ff4 fs3 fc1 sc0 ls0 ws0">...............................................................................................<span class="_ _1e"></span> <span class="_ _8"> </span> <span class="_ _1f"> </span>3.2.2 Creation and Destruction<span class="_ _3"></span> <span class="_ _20"> </span>12</div><div class="t m0 x1c h6 y40 ff4 fs3 fc1 sc0 ls0 ws0">................................................................................<span class="_ _1e"></span> <span class="_ _8"> </span> <span class="_ _1f"> </span>3.2.3 Parallel Class Method Invocations<span class="_ _1"></span> <span class="_ _21"> </span>13</div><div class="t m0 x1d h6 y41 ff4 fs3 fc1 sc0 ls0 ws0">.........................................................................................................<span class="_ _1e"></span> <span class="_ _8"> </span> <span class="_ _1f"> </span>3.2.4 Passing arguments<span class="_ _1"></span> <span class="_ _22"> </span>14</div><div class="t m0 x1e h6 y42 ff4 fs3 fc1 sc0 ls0 ws0">...................................................................................<span class="_ _1e"></span> <span class="_ _8"> </span> <span class="_ _1f"> </span>3.2.5 Marshalling complex arguments<span class="_ _1"></span> <span class="_ _23"> </span>16</div><div class="t m0 x1f h6 y43 ff4 fs3 fc1 sc0 ls0 ws0">................................................................................................<span class="_ _1e"></span> <span class="_ _8"> </span> <span class="_ _1f"> </span>3.2.6 Inheritance in POP-C++ <span class="_ _24"> </span>19</div><div class="t m0 x8 h8 y44 ff4 fs3 fc1 sc0 ls0 ws0"> <span class="_ _8"> </span> <span class="_ _1f"> </span>3.2.7 Usage of <span class="ff6 fs1 ls1">this<span class="_ _25"> </span></span>........................................................................................<span class="_ _26"></span> in POP-C++<span class="_ _3"></span> <span class="_ _27"> </span>19</div><div class="t m0 x20 h6 y45 ff4 fs3 fc1 sc0 ls0 ws0">........................................................................................<span class="_ _1e"></span> <span class="_ _8"> </span> <span class="_ _1f"> </span>3.2.8 Standard output in POP-C++<span class="_ _3"></span> <span class="_ _28"> </span>21</div><div class="t m0 x18 h6 y46 ff4 fs3 fc1 sc0 ls0 ws0">.......................................................................................................<span class="_ _1e"></span> <span class="_ _8"> </span> <span class="_ _1f"> </span>3.2.9 Object Descriptions<span class="_ _0"></span> <span class="_ _29"> </span>21</div><div class="t m0 x21 hc y47 ff4 fs1 fc1 sc0 ls0 ws0">.....................................................................................................................<span class="_ _19"></span> <span class="_ _8"> </span>3.3 Object Layout<span class="_ _a"></span> <span class="_ _2a"> </span>22</div><div class="t m0 x8 h8 y48 ff4 fs3 fc1 sc0 ls0 ws0"> <span class="_ _8"> </span> <span class="_ _1f"> </span>3.3.1 The <span class="ff6 fs1 ls1">@pack()<span class="_ _2b"> </span></span>..............................................................................................<span class="_ _2c"></span> directive<span class="_ _3"></span> <span class="_ _2d"> </span>22</div><div class="t m0 x22 h6 y49 ff4 fs3 fc1 sc0 ls0 ws0">..................................................................................................<span class="_ _1e"></span> <span class="_ _8"> </span> <span class="_ _1f"> </span>3.3.2 Class Unique Identifier <span class="_ _2e"> </span>24</div><div class="t m0 x16 hc y4a ff4 fs1 fc1 sc0 ls0 ws0">..................................................................................................<span class="_ _19"></span> <span class="_ _8"> </span>3.4 POP-C++ standard library<span class="_ _3"></span> <span class="_ _2f"> </span>25</div><div class="t m0 x16 h6 y4b ff4 fs3 fc1 sc0 ls0 ws0">......................................................................................................<span class="_ _1e"></span> <span class="_ _8"> </span> <span class="_ _1f"> </span>3.4.1 The POPString class <span class="_ _30"> </span>25</div><div class="t m0 x23 h6 y4c ff4 fs3 fc1 sc0 ls0 ws0">............................................................................................<span class="_ _1e"></span> <span class="_ _8"> </span> <span class="_ _1f"> </span>3.4.2 Synchronization and locks <span class="_ _31"> </span>25</div><div class="t m0 x24 h6 y4d ff4 fs3 fc1 sc0 ls0 ws0">.....................................................................................................................<span class="_ _1e"></span> <span class="_ _8"> </span> <span class="_ _1f"> </span>3.4.3 Exceptions <span class="_ _32"> </span>28</div><div class="t m0 x25 hc y4e ff4 fs1 fc1 sc0 ls0 ws0">..........................................................................................................................<span class="_ _19"></span> <span class="_ _8"> </span>3.5 Limitations<span class="_ _3"></span> <span class="_ _33"> </span>29</div><div class="t m0 x26 hb y4f ff5 fs5 fc1 sc0 ls0 ws0">.......................................................................................<span class="_ _34"></span>4 <span class="_"> </span>Compiling and Running<span class="_ _3"></span> <span class="_ _35"> </span>31</div><div class="t m0 x27 hc y50 ff4 fs1 fc1 sc0 ls0 ws0">....................................................................................<span class="_ _19"></span> <span class="_ _8"> </span>4.1 The POP-C++ compilation process<span class="_ _3"></span> <span class="_ _36"> </span>31</div><div class="t m0 x28 hc y51 ff4 fs1 fc1 sc0 ls0 ws0">..............................................................................<span class="_ _19"></span> <span class="_ _8"> </span>4.2 Compiling a simple POP-C++ program <span class="_ _37"> </span>31</div><div class="t m0 xa h6 y52 ff4 fs3 fc1 sc0 ls0 ws0">......................................................................................................................<span class="_ _1e"></span> <span class="_ _8"> </span> <span class="_ _1f"> </span>4.2.1 Compiling <span class="_ _38"> </span>32</div><div class="t m0 x27 h6 y53 ff4 fs3 fc1 sc0 ls0 ws0">.......................................................................................<span class="_ _1e"></span> <span class="_ _8"> </span> <span class="_ _1f"> </span>4.2.2 Compiling the parallel classes<span class="_ _1"></span> <span class="_ _39"> </span>32</div><div class="t m0 x20 h6 y54 ff4 fs3 fc1 sc0 ls0 ws0">........................................................................................<span class="_ _1e"></span> <span class="_ _8"> </span> <span class="_ _1f"> </span>4.2.3 Running POP-C++ programs<span class="_ _1"></span> <span class="_ _28"> </span>32</div><div class="t m0 x29 hc y55 ff4 fs1 fc1 sc0 ls0 ws0">...........................................................................<span class="_ _19"></span> <span class="_ _8"> </span>4.3 Compiling a complex POP-C++ program<span class="_ _1"></span> <span class="_ _3a"> </span>33</div><div class="t m0 x8 h5 y56 ff3 fs2 fc1 sc0 ls0 ws0">T<span class="_ _4"></span>able of content</div></div><div class="pi" data-data='{"ctm":[1.611639,0.000000,0.000000,1.611639,0.000000,0.000000]}'></div></div>
<div id="pf4" class="pf w0 h0" data-page-no="4"><div class="pc pc4 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/628930c116e0ca714103a5b6/bg4.jpg"><div class="t m0 x26 hb y57 ff5 fs5 fc1 sc0 ls0 ws0">.......................................................................................<span class="_ _34"></span>5 <span class="_"> </span>Installation Instructions<span class="_ _a"></span> <span class="_ _35"> </span>35</div><div class="t m0 x11 hc y58 ff4 fs1 fc1 sc0 ls0 ws0">.........................................................................................................................<span class="_ _19"></span> <span class="_ _8"> </span>5.1 Introduction<span class="_ _1"></span> <span class="_ _3b"> </span>35</div><div class="t m0 x12 hc y1 ff4 fs1 fc1 sc0 ls0 ws0">..................................................................................................................<span class="_ _19"></span> <span class="_ _8"> </span>5.2 Before installing<span class="_ _3c"></span> <span class="_ _3d"> </span>35</div><div class="t m0 x2a h6 y59 ff4 fs3 fc1 sc0 ls0 ws0">..................................................................................................................<span class="_ _1e"></span> <span class="_ _8"> </span> <span class="_ _1f"> </span>5.2.1 Prerequisites <span class="_ _3e"> </span>35</div><div class="t m0 x16 h6 y5a ff4 fs3 fc1 sc0 ls0 ws0">......................................................................................................<span class="_ _1e"></span> <span class="_ _8"> </span> <span class="_ _1f"> </span>5.2.2 Location of the Files<span class="_ _1"></span> <span class="_ _30"> </span>36</div><div class="t m0 x2b h6 y5b ff4 fs3 fc1 sc0 ls0 ws0">......................................................................<span class="_ _1e"></span> <span class="_ _8"> </span> <span class="_ _1f"> </span>5.2.3 Downloading the POP-C++ Distribution<span class="_ _3"></span> <span class="_ _3f"> </span>36</div><div class="t m0 x2c hc y5c ff4 fs1 fc1 sc0 ls0 ws0">...........................................................................................................................<span class="_ _19"></span> <span class="_ _8"> </span>5.3 Installation <span class="_ _40"> </span>37</div><div class="t m0 x2d h6 y5d ff4 fs3 fc1 sc0 ls0 ws0">...................................................................................................<span class="_ _1e"></span> <span class="_ _8"> </span> <span class="_ _1f"> </span>5.3.1 Preparing compilation<span class="_ _a"></span> <span class="_ _41"> </span>37</div><div class="t m0 x23 h6 y5e ff4 fs3 fc1 sc0 ls0 ws0">............................................................................................<span class="_ _1e"></span> <span class="_ _8"> </span> <span class="_ _1f"> </span>5.3.2 Compiling POP-C++ tools<span class="_ _0"></span> <span class="_ _31"> </span>38</div><div class="t m0 x2e h6 y5f ff4 fs3 fc1 sc0 ls0 ws0">.............................................................................................................<span class="_ _1e"></span> <span class="_ _8"> </span> <span class="_ _1f"> </span>5.3.3 POP-C++ Setup<span class="_ _3"></span> <span class="_ _42"> </span>38</div><div class="t m0 xe hc y15 ff4 fs1 fc1 sc0 ls0 ws0">..............................................................................................................<span class="_ _19"></span> <span class="_ _8"> </span>5.4 T<span class="_ _4"></span>esting Installation <span class="_ _43"> </span>42</div><div class="t m0 x2f hc y60 ff4 fs1 fc1 sc0 ls0 ws0">.................................................................................................................<span class="_ _19"></span> <span class="_ _8"> </span>5.5 The Job Manager <span class="_ _44"> </span>42</div><div class="t m0 x30 hb y61 ff5 fs5 fc1 sc0 ls0 ws0">......................................................................<span class="_ _34"></span>Appendix <span class="_ _0"></span>A: Command Line Syntax<span class="_ _3"></span> <span class="_ _45"> </span>45</div><div class="t m0 x18 hc y62 ff4 fs1 fc1 sc0 ls0 ws0">...................................................................................................<span class="_ _19"></span> <span class="_ _46"> </span>A.1 Compiling an application <span class="_ _47"> </span>45</div><div class="t m0 x31 hc y63 ff4 fs1 fc1 sc0 ls0 ws0">.......................................................................................................<span class="_ _19"></span> <span class="_ _46"> </span>A.2 Running an application <span class="_ _48"> </span>46</div><div class="t m0 x30 hb y64 ff5 fs5 fc1 sc0 ls0 ws0">......................................................................<span class="_ _34"></span>Appendix B: Environment variable<span class="_ _2"></span>s<span class="_ _3"></span> <span class="_ _49"> </span>47</div><div class="t m0 x8 h5 y56 ff3 fs2 fc1 sc0 ls0 ws0">2<span class="_ _3"></span><span class="ls3"> C<span class="_ _4a"></span>o<span class="_ _4a"></span>n<span class="_ _4a"></span>t<span class="_ _4a"></span>e<span class="_ _4a"></span>n<span class="_ _4a"></span>t</span></div></div><div class="pi" data-data='{"ctm":[1.611639,0.000000,0.000000,1.611639,0.000000,0.000000]}'></div></div>
<div id="pf5" class="pf w0 h0" data-page-no="5"><div class="pc pc5 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/628930c116e0ca714103a5b6/bg5.jpg"><div class="c x8 yc w2 hd"><div class="t m0 x0 he y65 ff2 fs6 fc0 sc0 ls0 ws0">CHAPTER</div></div><div class="c x8 y66 w3 hf"><div class="t m0 x32 h10 y67 ff2 fs7 fc0 sc0 ls0 ws0">1</div></div><div class="c x33 y66 w4 hf"><div class="t m0 x0 h11 y68 ff1 fs8 fc0 sc0 ls0 ws0">O<span class="fc2 sc0">ve</span><span class="fc2 sc0">rvi</span><span class="fc2 sc0">e</span><span class="fc2 sc0">w</span></div></div><div class="c x34 y66 w5 hf"><div class="t m0 x35 h11 y68 ff1 fs8 fc0 sc0 ls0 ws0">Overview</div></div><div class="c x36 y66 w6 hf"><div class="t m0 x37 h11 y68 ff1 fs8 fc0 sc0 ls0 ws0"><span class="fc2 sc0">O</span><span class="fc2 sc0">ve</span><span class="fc2 sc0">rvi</span><span class="fc2 sc0">e</span><span class="fc2 sc0">w</span></div></div><div class="c x33 y69 w4 h12"><div class="t m0 x0 h13 y6a ff1 fs3 fc1 sc0 ls0 ws0">1.1<span class="_ _2"></span><span class="fc2 sc0"> </span><span class="_ _1"></span><span class="fc2 sc0">I</span><span class="fc2 sc0">n</span><span class="fc2 sc0">t</span><span class="fc2 sc0">ro</span><span class="fc2 sc0">d</span><span class="fc2 sc0">u</span><span class="fc2 sc0">ct</span><span class="fc2 sc0">i</span><span class="fc2 sc0">o</span><span class="fc2 sc0">n</span></div><div class="t m0 x0 h13 y6b ff1 fs3 fc1 sc0 ls0 ws0">1.2<span class="_ _2"></span><span class="fc2 sc0"> </span><span class="_ _1"></span><span class="fc2 sc0">T</span><span class="fc2 sc0">h</span><span class="fc2 sc0">e</span><span class="fc2 sc0"> </span><span class="fc2 sc0">PO</span><span class="fc2 sc0">P</span><span class="fc2 sc0"> </span><span class="fc2 sc0">Mo</span><span class="fc2 sc0">d</span><span class="fc2 sc0">e</span><span class="fc2 sc0">l</span></div><div class="t m0 x0 h13 y6c ff1 fs3 fc1 sc0 ls0 ws0">1.3<span class="_ _2"></span><span class="fc2 sc0"> </span><span class="_ _1"></span><span class="fc2 sc0">Syst</span><span class="fc2 sc0">e</span><span class="fc2 sc0">m </span><span class="fc2 sc0">O</span><span class="fc2 sc0">ve</span><span class="fc2 sc0">rvi</span><span class="fc2 sc0">e</span><span class="fc2 sc0">w</span></div></div><div class="c x34 y69 w5 h12"><div class="t m0 x35 h13 y6a ff1 fs3 fc1 sc0 ls0 ws0"><span class="fc2 sc0">1</span><span class="fc2 sc0">.</span>1<span class="_ _2"></span> <span class="_ _1"></span>Introduction</div><div class="t m0 x35 h13 y6b ff1 fs3 fc1 sc0 ls0 ws0"><span class="fc2 sc0">1</span><span class="fc2 sc0">.</span>2<span class="_ _2"></span> <span class="_ _1"></span>The POP Model</div><div class="t m0 x35 h13 y6c ff1 fs3 fc1 sc0 ls0 ws0"><span class="fc2 sc0">1</span><span class="fc2 sc0">.</span>3<span class="_ _2"></span> <span class="_ _1"></span>System Overview</div></div><div class="c x36 y69 w6 h12"><div class="t m0 x0 h13 y6a ff1 fs3 fc1 sc0 ls0 ws0">1.4<span class="_ _2"></span> <span class="_ _1"></span>Structure of this Manual</div><div class="t m0 x0 h13 y6b ff1 fs3 fc1 sc0 ls0 ws0">1.5<span class="_ _2"></span> <span class="_ _0"></span>Additional Information</div></div><div class="t m0 x8 ha y6d ff2 fs4 fc0 sc0 ls0 ws0">1 Introduction</div><div class="t m0 x8 h14 y6e ff8 fs9 fc1 sc0 ls0 ws0">Programming<span class="_ _3"></span> <span class="_ _a"></span>large <span class="_ _4b"></span>heterogenous<span class="_ _4c"></span> distributed <span class="_ _4b"></span>computing <span class="_ _4b"></span>environments<span class="_ _a"></span> <span class="_ _3"></span>such<span class="_ _a"></span> <span class="_ _a"></span>as<span class="_ _4b"></span> GRID, <span class="_ _4b"></span>P2P<span class="_ _4"></span>, </div><div class="t m0 x8 h14 y1b ff8 fs9 fc1 sc0 ls0 ws0">Cloud <span class="_ _a"></span>or<span class="_ _1"></span> <span class="_ _4c"> </span>even<span class="_ _a"></span> <span class="_ _3"></span>lar<span class="_ _2"></span>ge<span class="_ _3"></span> <span class="_ _3"></span>supercomputers<span class="_ _4b"></span> is<span class="_ _4b"></span> <span class="_ _1"></span>a<span class="_ _3"></span> <span class="_ _3"></span>challenging<span class="_ _a"></span> <span class="_ _3"></span>task.<span class="_ _0"></span> <span class="_ _4d"> </span>POP-C++<span class="_ _1"></span> <span class="_ _4c"></span>is<span class="_ _a"></span> an<span class="_ _3"></span> <span class="_ _a"></span>implementation, </div><div class="t m0 x8 h14 y6f ff8 fs9 fc1 sc0 ls0 ws0">as<span class="_ _4b"></span> <span class="_ _4"></span>an<span class="_ _a"></span> <span class="_ _1"></span>extension<span class="_ _3"></span> <span class="_ _1"></span>of<span class="_ _1"></span> <span class="_ _a"></span>the C++<span class="_ _1"></span> <span class="_ _a"></span>programming<span class="_ _3"></span> language,<span class="_ _1"></span> <span class="_ _3"></span>of<span class="_ _1"></span> <span class="_ _3"></span>the<span class="_ _3"></span> POP<span class="_ _0"></span> <span class="_ _3"></span>(Parallel<span class="_ _0"></span> <span class="_ _a"></span>Object<span class="_ _3"></span> Programing) </div><div class="t m0 x8 h14 y70 ff8 fs9 fc1 sc0 ls0 ws0">model<span class="_ _1"></span> <span class="_ _a"></span>first introduced<span class="_ _3"></span> by<span class="_ _3"></span> <span class="_ _1"></span>Dr<span class="_ _1"></span>. T<span class="_ _1"></span>uan<span class="_ _a"></span> <span class="_ _4"></span>Anh<span class="_ _3"></span> Nguyen<span class="_ _a"></span> <span class="_ _0"></span>in<span class="_ _3"></span> his<span class="_ _a"></span> <span class="_ _0"></span>PhD<span class="_ _1"></span> <span class="_ _a"></span>thesis</div><div class="t m0 x38 h15 y71 ff8 fsa fc1 sc0 ls0 ws0">1</div><div class="t m0 x39 h14 y70 ff8 fs9 fc1 sc0 ls0 ws0">.<span class="_ _1"></span> <span class="_ _3"></span>The<span class="_ _3"></span> POP <span class="_ _1"></span>model<span class="_ _1"></span> <span class="_ _a"></span>is<span class="_ _4c"> </span> <span class="_ _4"></span>based </div><div class="t m0 x8 h14 y1e ff8 fs9 fc1 sc0 ls0 ws0">on<span class="_ _4b"></span> <span class="_ _1"></span>the<span class="_ _3"></span> <span class="_ _3"></span>very <span class="_ _3"></span>simple<span class="_ _a"></span> idea <span class="_ _a"></span>that<span class="_ _a"></span> objects<span class="_ _a"></span> are <span class="_ _3"></span>suitable<span class="_ _a"></span> structures<span class="_ _4b"></span> <span class="_ _1"></span>to<span class="_ _3"></span> <span class="_ _3"></span>distribute <span class="_ _a"></span>data<span class="_ _3"></span> <span class="_ _3"></span>and<span class="_ _a"></span> executable </div><div class="t m0 x8 h14 y72 ff8 fs9 fc1 sc0 ls0 ws0">codes<span class="_ _4c"></span> <span class="_ _1"></span>over<span class="_ _0"></span> <span class="_ _4d"> </span>heterogeneous<span class="_ _a"></span> distributed<span class="_ _3"></span> <span class="_ _3"></span>hardware.<span class="_ _1"></span> <span class="_ _4c"> </span>to<span class="_ _3"></span> <span class="_ _3"></span>create<span class="_ _3"></span> <span class="_ _3"></span>parallel<span class="_ _0"></span> <span class="_ _4d"> </span>applications<span class="_ _4b"></span> based<span class="_ _3"></span> <span class="_ _3"></span>on<span class="_ _3"></span> <span class="_ _3"></span>the </div><div class="t m0 x8 h14 y73 ff8 fs9 fc1 sc0 ls0 ws0">MPMD (Multiple Programs Multiple Data) paradigm.</div><div class="t m0 x8 h14 y74 ff8 fs9 fc1 sc0 ls0 ws0">The <span class="_ _4d"> </span>POP-C++ <span class="_ _4e"> </span>programming <span class="_ _4d"> </span>language <span class="_ _4e"> </span>extends<span class="_ _a"></span> <span class="_ _4b"></span>C++<span class="_ _1"></span> <span class="_ _4f"> </span>by <span class="_ _4d"> </span>adding<span class="_ _a"></span> <span class="_ _4c"></span>a<span class="_ _3"></span> <span class="_ _4c"> </span>new <span class="_ _4e"> </span>type <span class="_ _4d"> </span>of <span class="_ _4e"> </span>objects<span class="_ _a"></span> <span class="_ _4b"></span>we <span class="_ _50"></span> </div><div class="t m0 x8 h14 y75 ff8 fs9 fc1 sc0 ls4 ws0">call:<span class="_ _1"></span> <span class="_ _51"> </span><span class="ff9 ls0">parallel <span class="_ _52"> </span>object<span class="ff8">.<span class="_ _2"></span> <span class="_ _53"> </span>POP-C++ <span class="_ _52"> </span>has<span class="_ _a"></span> <span class="_"> </span>been <span class="_ _52"> </span>designed<span class="_ _a"></span> <span class="_ _54"> </span>to<span class="_ _a"></span> <span class="_"> </span>ease, <span class="_ _52"> </span>as<span class="_ _a"></span> <span class="_ _54"> </span>much <span class="_ _52"> </span>as<span class="_ _4b"></span> <span class="_ _4f"> </span>possible,<span class="_ _1"></span> <span class="_ _51"> </span>the </span></span></div><div class="t m0 x8 h14 y22 ff8 fs9 fc1 sc0 ls0 ws0">development<span class="_ _a"></span> <span class="_ _55"> </span>of <span class="_ _56"> </span>efficient<span class="_ _3"></span> <span class="_ _55"> </span>distributed <span class="_ _56"> </span>applications<span class="_ _4b"></span> <span class="_ _57"> </span>using <span class="_ _56"> </span>the <span class="_ _56"> </span>powerful<span class="_ _0"></span> <span class="_ _58"> </span>object-oriented </div><div class="t m0 x8 h14 y76 ff8 fs9 fc1 sc0 ls0 ws0">programming <span class="_ _4b"></span>paradigm<span class="_ _3c"></span> <span class="_ _4f"> </span>and<span class="_ _3"></span> <span class="_ _a"></span>to <span class="_ _4b"></span>allow <span class="_ _4b"></span>existing <span class="_ _4b"></span>C/C++<span class="_ _0"></span> <span class="_ _4d"> </span>programs<span class="_ _4b"></span> to<span class="_ _3"></span> <span class="_ _a"></span>be <span class="_ _4b"></span>easily <span class="_ _4b"></span>transformed<span class="_ _a"></span> <span class="_ _3"></span>in </div><div class="t m0 x8 h14 y77 ff8 fs9 fc1 sc0 ls0 ws0">efficient<span class="_ _2"></span> parallel applications.</div><div class="t m0 x8 ha y78 ff2 fs4 fc0 sc0 ls0 ws0">1.2 The POP<span class="_ _1"></span> Model</div><div class="t m0 x8 h14 y79 ff8 fs9 fc1 sc0 ls0 ws0">The <span class="_ _4c"> </span>POP<span class="_ _3"></span> <span class="_ _4b"></span>model<span class="_ _4"></span> <span class="_ _4f"> </span>extends<span class="_ _3"></span> <span class="_ _4b"></span>the <span class="_ _4d"> </span>traditional<span class="_ _1"></span> <span class="_ _4e"> </span>object<span class="_ _a"></span> <span class="_ _a"></span>oriented<span class="_ _3"></span> <span class="_ _4c"></span>programming<span class="_ _3"></span> <span class="_ _4b"></span>paradigm<span class="_ _3c"></span> <span class="_"> </span>by<span class="_ _a"></span> <span class="_ _a"></span>adding </div><div class="t m0 x8 h14 y7a ff8 fs9 fc1 sc0 ls0 ws0">the <span class="_ _4f"> </span>minimum<span class="_ _3c"></span> <span class="_ _53"> </span>necessary<span class="_ _3"></span> <span class="_ _4e"> </span>functionality<span class="_ _4b"></span> <span class="_ _4c"> </span>to<span class="_ _4b"></span> <span class="_ _4d"> </span>allow <span class="_ _4f"> </span>for <span class="_ _4f"> </span>an<span class="_ _a"></span> <span class="_ _4d"> </span>easy<span class="_ _a"></span> <span class="_ _4d"> </span>development<span class="_ _4b"></span> <span class="_ _4d"> </span>of <span class="_ _4f"> </span>coarse <span class="_ _4f"> </span>grain </div><div class="t m0 x8 h14 y7b ff8 fs9 fc1 sc0 ls0 ws0">distributed<span class="_ _3"></span> <span class="_ _4b"></span>high<span class="_ _3"></span> <span class="_ _a"></span>performance<span class="_ _3"></span> <span class="_ _4b"></span>applications.<span class="_ _1"></span> <span class="_ _4d"> </span>When<span class="_ _a"></span> <span class="_ _a"></span>the<span class="_ _3"></span> <span class="_ _4b"></span>object <span class="_ _4b"></span>oriented<span class="_ _a"></span> <span class="_ _a"></span>paradigm<span class="_ _4"></span> <span class="_ _4f"> </span>has<span class="_ _4b"></span> <span class="_ _3"></span>unified </div><div class="t m0 x8 h14 y7c ff8 fs9 fc1 sc0 ls0 ws0">the <span class="_ _4b"></span>concept<span class="_ _3"></span> <span class="_ _3"></span>of<span class="_ _1"></span> <span class="_ _4d"> </span>module <span class="_ _a"></span>and<span class="_ _4b"></span> type<span class="_ _3"></span> <span class="_ _a"></span>to<span class="_ _a"></span> <span class="_ _3"></span>create<span class="_ _3"></span> <span class="_ _3"></span>the<span class="_ _3"></span> <span class="_ _a"></span>new<span class="_ _1"></span> <span class="_ _4d"> </span>concept<span class="_ _3"></span> <span class="_ _3"></span>of<span class="_ _1"></span> <span class="_ _4d"> </span>class,<span class="_ _1"></span> <span class="_ _4c"> </span>the<span class="_ _3"></span> <span class="_ _a"></span>POP<span class="_ _1"></span> <span class="_ _4b"></span>model<span class="_ _0"></span> <span class="_ _4d"> </span>unifies </div><div class="t m0 x8 h14 y7d ff8 fs9 fc1 sc0 ls0 ws0">the <span class="_ _4e"> </span>concept <span class="_ _4f"> </span>of<span class="_ _1"></span> <span class="_ _4f"> </span>class<span class="_ _a"></span> <span class="_ _4d"> </span>with <span class="_ _4e"> </span>the<span class="_ _a"></span> <span class="_ _4d"> </span>concept<span class="_ _3"></span> <span class="_ _4d"> </span>of <span class="_ _4e"> </span>task <span class="_ _4f"> </span>(or <span class="_ _4e"> </span>process) <span class="_ _4f"> </span>to <span class="_ _4e"> </span>create<span class="_ _3"></span> <span class="_ _4d"> </span>the <span class="_ _4f"> </span>new<span class="_ _1"></span> <span class="_ _4f"> </span>concept<span class="_ _a"></span> <span class="_ _4d"> </span>of </div><div class="t m0 x8 h14 y4d ff9 fs9 fc1 sc0 ls0 ws0">parallel<span class="_ _3"></span> <span class="_ _4d"> </span>class<span class="ff8">.<span class="_ _1"></span> <span class="_"> </span>By<span class="_ _3"></span> <span class="_ _4d"> </span>instantiating<span class="_ _a"></span> <span class="_ _4c"> </span>parallel<span class="_ _1"></span> <span class="_"> </span>classes<span class="_ _3"></span> <span class="_ _4d"> </span>we <span class="_ _4e"> </span>are<span class="_ _3"></span> <span class="_ _4d"> </span>able<span class="_ _3"></span> <span class="_ _4e"> </span>to<span class="_ _3"></span> <span class="_ _4d"> </span>create <span class="_ _4f"> </span>a<span class="_ _3"></span> <span class="_ _4d"> </span>new<span class="_ _0"></span> <span class="_"> </span>category<span class="_ _a"></span> <span class="_ _4c"> </span>of </span></div><div class="t m0 x8 h14 y4e ff8 fs9 fc1 sc0 ls0 ws0">objects we will call <span class="ff9">parallel objects</span> in this document. </div><div class="t m0 x8 h14 y7e ff8 fs9 fc1 sc0 ls0 ws0">Parallel<span class="_ _0"></span> <span class="_ _4c"> </span>objects<span class="_ _a"></span> are<span class="_ _a"></span> objects<span class="_ _4b"></span> <span class="_ _1"></span>that<span class="_ _a"></span> can<span class="_ _a"></span> be<span class="_ _3"></span> <span class="_ _3"></span>remotely <span class="_ _3"></span>executed. <span class="_ _a"></span>They<span class="_ _3"></span> coexist<span class="_ _a"></span> and<span class="_ _4b"></span> <span class="_ _2"></span>cooperate<span class="_ _3"></span> <span class="_ _3"></span>with </div><div class="t m0 x8 h14 y7f ff8 fs9 fc1 sc0 ls0 ws0">traditional<span class="_ _1"></span> <span class="_ _4d"> </span>sequential<span class="_ _0"></span> <span class="_ _4e"> </span>objects<span class="_ _a"></span> <span class="_ _3"></span>during<span class="_ _3"></span> <span class="_ _a"></span>the<span class="_ _3"></span> <span class="_ _4b"></span>execution <span class="_ _4b"></span>of <span class="_ _4b"></span>the<span class="_ _3"></span> <span class="_ _a"></span>application. <span class="_ _4c"></span>Parallel<span class="_ _2"></span> <span class="_ _4c"> </span>objects<span class="_ _4c"> </span> keep </div><div class="t m0 x8 h14 y80 ff8 fs9 fc1 sc0 ls0 ws0">advantages<span class="_ _4b"></span> <span class="_ _4c"> </span>of<span class="_ _1"></span> <span class="_"> </span>the<span class="_ _a"></span> <span class="_ _4e"> </span>object-orientation <span class="_ _4f"> </span>programming<span class="_ _3"></span> <span class="_ _4e"> </span>paradigm<span class="_ _1"></span> <span class="_"> </span>such<span class="_ _a"></span> <span class="_ _4e"> </span>as<span class="_ _a"></span> <span class="_ _4d"> </span>data<span class="_ _3"></span> <span class="_ _4f"> </span>encapsulation, </div><div class="t m0 x8 h14 y81 ff8 fs9 fc1 sc0 ls0 ws0">inheritance and polymorphism and adds new properties to objects such as: </div><div class="t m0 x3a h16 y82 ffa fs9 fc1 sc0 ls0 ws0">•</div><div class="t m0 x3b h14 y83 ff8 fs9 fc1 sc0 ls0 ws0">Distributed shareable objects</div><div class="t m0 x8 h5 y56 ff3 fs2 fc1 sc0 ls0 ws0">Overview<span class="_ _0"></span> <span class="_ _59"> </span>1</div><div class="t m0 x8 h17 y84 ffb fsb fc1 sc0 ls0 ws0">1</div><div class="t m0 x3c h18 ya ffb fs2 fc1 sc0 ls0 ws0"> T<span class="_ _1"></span>uan-Anh Nguyen. <span class="_ _1"></span>An Object-oriented model for adaptive high performance computing on the </div><div class="t m0 x8 h18 y85 ffb fs2 fc1 sc0 ls0 ws0">computational Grid. PhD thesis, Swiss Federal Institute of T<span class="_ _3c"></span>echnology-L<span class="_ _3"></span>ausanne, 2004.</div><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a></div><div class="pi" data-data='{"ctm":[1.611639,0.000000,0.000000,1.611639,0.000000,0.000000]}'></div></div>