Menu

Tree [r106] /
 History

HTTPS access


File Date Author Commit
 demos 2009-12-14 lwink [r101] Reindent examples + cosmetic changes
 doc 2009-12-16 lwink [r103] POP-C++ release 1.3. Added the new documentation.
 examples 2009-12-17 lwink [r104] More cleanup in examples
 globus 2009-11-10 lwink [r86] This version is now called popc-1.3-beta. Chang...
 include 2009-12-16 lwink [r102] Cleaned examples. POPException::Print() added
 lib 2009-12-17 lwink [r105] Fixed a bug in 64 bits
 model 2009-11-10 lwink [r86] This version is now called popc-1.3-beta. Chang...
 modules 2009-11-10 lwink [r86] This version is now called popc-1.3-beta. Chang...
 mpi 2009-12-14 lwink [r101] Reindent examples + cosmetic changes
 parser 2009-12-16 lwink [r102] Cleaned examples. POPException::Print() added
 scripts 2009-12-17 lwink [r106] Cleaned up the directory : POP-C++ release 1.3 ...
 services 2009-12-14 lwink [r101] Reindent examples + cosmetic changes
 test 2009-12-17 lwink [r105] Fixed a bug in 64 bits
 AUTHORS 2007-04-30 tanguyen [r1] POP-C++ 1.2 verion:
 COPYING 2007-04-30 tanguyen [r1] POP-C++ 1.2 verion:
 ChangeLog 2009-10-28 lwink [r80] Fix a bug for the 64bit version of POP-C++
 Doxyfile 2009-06-22 lwink [r30] All classes are now documented with Doxygen
 INSTALL 2007-04-30 tanguyen [r1] POP-C++ 1.2 verion:
 Makefile.am 2009-07-07 lwink [r54] Fix a bug plus improve POP-C++ exception handling
 Makefile.in 2009-11-01 lwink [r82] Fix a bug in prev commit.
 NEWS 2007-04-30 tanguyen [r1] POP-C++ 1.2 verion:
 README 2009-12-11 lwink [r100] Cleaned up examples, demos, test
 aclocal.m4 2009-11-01 lwink [r82] Fix a bug in prev commit.
 config.guess 2009-06-22 lwink [r7] This commit is made to create a common commit b...
 config.h.in 2009-11-01 lwink [r81] Adaptation for g++ 4.4.1 and equivalent autoconf
 config.sub 2009-06-22 lwink [r7] This commit is made to create a common commit b...
 configure 2009-12-14 lwink [r101] Reindent examples + cosmetic changes
 configure.ac 2009-12-14 lwink [r101] Reindent examples + cosmetic changes
 install-sh 2009-09-25 lwink [r68] Fixed a few bugs
 ltmain.sh 2009-06-22 lwink [r47] Rename all environment variables from PAROC_ to...
 missing 2009-06-22 lwink [r7] This commit is made to create a common commit b...

Read Me

This transcript helps you to set up POP-C++ on our system. 
NOTE: PAROC++ is the former name of POP-C++ so in this transcript, 
at certain places, PAROC++ is stilled used instead of POP-C++.

0. BEFORE STARTING

Here is information about the environment:
- User account: tanguyen
- Local machine: sb02.eif.ch
- Shell: tcsh
- GLOBUS toolkit is installed and the GLOBUS_LOCATION variable is set

In order to install properly POP-C++, you will need following software:
 - C++ compiler;
 - GNU tar;
 - GNU make;
 - Flex / Bison.


1. COMPILE THE PAROC SOURCE CODE

[110]sb02-tanguyen>echo $GLOBUS_LOCATION
/usr/local/globus-4.0.0


[111]sb02-tanguyen>tar xfvz popc-1.0.tar.gz


[112]sb02-tanguyen>cd popc-1.0


[113]sb02-tanguyen>pwd
/home/tanguyen/src/popc-1.0


[114]sb02-tanguyen>./configure --prefix=/home/tanguyen/tools/popc --enable-globus=gcc32dbgpthr 

checking for a BSD-compatible install... ./install-sh -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking build system type... sparc-sun-solaris2.9
...

*NOTE: If you do not have Globus installed, remove the "--enable-globus=
gcc32dbgpthr" from the above configure command. 

[115]sb02-tanguyen>make
Please check if there is any compilation error before proceeding the next step.


2. INSTALL POP-C++

[116]sb02-tanguyen>make install

After the installation, the setup script is automatically executed which requests the user to enter several information

GENERATING SERVICE MAPS...
CONFIGURING PAROC SERVICES ON YOUR LOCAL MACHINE...
Enter the full qualified master host name (PAROC gateway):
sb02.eif.ch
Enter the full qualified master host name (PAROC gateway):[Enter]

*NOTE: You can specify several "master" nodes that when the local node wants to
join the Grid, it will self-register to these master nodes. In other word, the 
local node is "managed" by these master nodes. 

Enter the child node:[Enter]

*NOTE: Child nodes are the list of hosts to which the local node will manage. 



Enter number of processors available (default:1):[Enter]

Enter the maximum number of POP-C++ jobs that can run concurrently (default: 1):[Enter]

Which local user you want to use for running PAROC jobs?[Enter]

*NOTE: It is possible to specify a specific user account where the standalone 
POP-C++ runtime service will submit the job. This information is not used in 
the Globus-based services.  


SETTING UP RUNTIME ENVIRONMENT VARIABLES
Enter variable name:
LD_LIBRARY_PATH
Enter variable value:
/softel/SunOS/sparc_5.9/usr.local/lib::/sybase/client/lib/:/lib:/usr/dt/lib:/opt/SUNWits/Graphics-sw/xgl-3.0/lib:/usr/openwin/lib:/usr/lib:/opt/SUNWspro/lib
Enter variable name:

DO YOU WANT TO CONFIGURE PAROC SERVICES FOR GLOBUS? (y/n)
y
Enter the local globus gatekeeper contact:
/O=EIF/OU=GridGroup/CN=host/eif.ch
Enter the GLOBUS grid-mapfile([/etc/grid-security/grid-mapfile]):

=====================================================
CONFIGURATION PAROC++ SERVICES COMPLETED!
=====================================================
Do you want to generate the PAROC++ startup scripts? (y/n)
y
=====================================================
CONFIGURING STARTUP SCRIPT FOR YOUR LOCAL MACHINE...
Enter the service port[2711]:[Enter]

Enter the domain name:
eif.ch
Enter the temporary directory for intermediate results:
/tmp/popc
Enter the command to execute parallel object codes:[Enter]


DO YOU WANT TO GENERATE THE GLOBUS-BASED PAROC SCRIPT? (y/n)
y
Enter the globus installed directory (/usr/local/globus-4.0.0):

CONFIGURATION DONE!


4. START POP-C++ RUNTIME SERVICES

[117]sb02-tanguyen>source /home/tanguyen/tools/popc/bin/popc-user-env.csh

*NOTE1: the above command is to source all POP-C++ environment variable which
will be later used to start POP-C++ applications.This script is located in
<POP-C++ installed directory>/bin

*NOTE2: if you have SH/BASH shell, you will need to source "popc-user-env.sh"
instead of "popc-user-env.csh"

[118]sb02-tanguyen>echo $POPC_LOCATION/
/home/tanguyen/tools/popc/

*NOTE: POPC_LOCATION is set to the POP-C++ installed directory when sourcing 
popc-user-env.[sh|csh]

[119]sb02-tanguyen>$POPC_LOCATION/sbin/SXXpopc.globus start
Starting PAROC/GLOBUS service:
Starting Parallel Object JobMgr service
[jobmgr.cc:1101]Updating my contact to parrent nodes...
[jobmgr.cc:504]Total resource power=95.2854, max per job=95.2854
[objectmonitor.cc:76]Check parallel objects....0 object alive
[paroc_system.cc:289]Application scope services are terminated
socket://160.98.20.187:2711[codemgr.cc:13]Now destroy CodeMgr

*NOTE1: for the Globus based services of POP-C++ to receive job,
you also need to start the PreWS Globus GRAM on that host. Refer 
to the Globus installation manual on how to start this service.

*NOTE2: if you don't have Globus GRAM running, you can start the 
POP-C++ standalone. Just use the "SXXpopc" script instead of 
"SXXpopc.globus".

Now, your machine is ready to receive POP-C++'s job requests.

We suppose POP-C++ is installed on NFS. To start POP-C++ services on another machine:

[120]sb02-tanguyen>rlogin sb03.eif.ch

[101]sb03-tanguyen>source /home/tanguyen/tools/popc/bin/popc-user-env.csh

[102]sb03-tanguyen>$POPC_LOCATION/sbin/SXXpopc.globus start
Starting PAROC/GLOBUS service:
Starting Parallel Object JobMgr service
[jobmgr.cc:1101]Updating my contact to parrent nodes...
[jobmgr.cc:1109]Registering socket://160.98.20.188:2711 to socket://sb02.eif.ch:2711
[jobmgr.cc:504]Total resource power=95.7606, max per job=95.7606
[objectmonitor.cc:76]Check parallel objects....0 object alive
[paroc_system.cc:289]Application scope services are terminated
socket://160.98.20.188:2711[codemgr.cc:13]Now destroy CodeMgr

*NOTE: if you don't have Globus support or Globus is not installed on your 
machine, you need to start the POP-C++ standalone service: 
       $POPC_LOCATION/sbin/SXXpopc start

5. RUNNING TEST

[126]sb02-tanguyen>jobmgrquery sb02.eif.ch:2711
Enter item to query:
host
host= sb02.eif.ch
power
power= 95.2854
gramcontact
gramcontact= /O=EIF/OU=GridGroup/CN=host/eif.ch
[Ctrl+D]

[130]sb02-tanguyen>grid-proxy-init
Your identity: /O=EIF/OU=GridGroup/CN=Tuan Anh Nguyen
Enter GRID pass phrase for this identity:
Creating proxy .................................... Done
Your proxy is valid until: Tue Jul  5 03:32:57 2005

*NOTE: grid-proxy-init is a Globus util. If Globus is not installed on 
your machine, just ignore the above command.


[131]sb02-tanguyen>cd $POPC_LOCATION/test/integer/

[132]sb02-tanguyen>./integer.obj -listlong > obj.map

[133]sb02-tanguyen>popcrun.globus obj.map ./integer.main
...
Object Integer on 160.98.20.188
O1=1; O2=2; O3=3
O1=O1+O2; O1=3
O1=O2+O3, O1=5
Sum x=12497500
Now waiting...
...

*NOTE: popcrun.globus is only used to run POP-C++ applications with Globus 
support. If you use the standalone version of POP-C++ service, "popcrun" 
should be used instead of "popcrun.globus"

6. FINAL STEP

GOOD LUCK ! :-)

For more information, please contact tuan.nguyen@eif.ch