ProActive And IC2D Installation

ProActive is available for download under the GPL 2 license. ProActive requires JDK 1.5 or later to be installed on your computer. Please note that ProActive will NOT run with any version prior to 1.5 since some features introduced in JDK 1.5 are essential.

2.1. ProActive Installation Overview

2.1.1. Testing ProActive With The Examples

  • Download and expand the ProActive archive

  • Set the JAVA_HOME variable to the Java distribution you want to use

  • Launch the scripts located in ProActive/scripts/unix or ProActive/scripts/windows

2.1.2. Developing With ProActive

  • Download and unzip the ProActive archive

  • Include in your CLASSPATH the ProActive jar file ProActive/dist/lib/ProActive.jar along with ProActive/dist/javassist.jar, ProActive/dist/log4j.jar, ProActive/dist/xercesImpl.jar, ProActive/dist/components/fractal.jar, and ProActive/dist/bouncycastle.jar

  • Depending on your project needs, you might need to include other libraries located in the ProActive/lib directory.

  • Launch the JVM with a security policy file using the option -Djava.security.policy=pathToFile. A basic policy file can be found at ProActive/dist/proactive.java.policy. You can also specify a log4j configuration file with the property -Dlog4j.configuration=file:pathToFile. If a configuration file is not specified a default logger that logs on the console will be created.

Below the different steps are described in more detail.

2.2. ProActive Detailed Installation Steps

2.2.1. Download And Expand The Archive

You can download the archive file (a standard zip file) containing ProActive from the download section of the ProActive home page. You will be asked to accept the license agreement and provide a few details including your email address. Within a few minutes you will receive an email containing a password and an URL where you will be able to download the latest release of ProActive.

Unzip the archive using your favorite ZIP program, such as Winzip under Windows or the unzip command-line utility under most Linux/Unix systems. Unzipping the archive creates a ProActive directory and all the files contained in the archive go into this directory and its subdirectories.

Here is a quick overview of the directory structure of the archive:

<title>ProActive.zip contents</title>

Directory or File

Description

ProActive.jar

ProActive bytecode that you need to include in the CLASSPATH in order to use ProActive

ProActive_examples.jar

The bytecode and resources of all examples included with ProActive. This jar file needs to be included in the CLASSPATH only when trying to run the examples. All examples rely on ProActive and therefore the ProActive.jar file must be included in the CLASSPATH as well. This is done automatically by the scripts driving the examples. The source code is also included in the src directory (see below)

ic2d.jar

The bytecode and resources of IC2D. This jar file needs to be included in the CLASSPATH only when trying to run the application IC2D. IC2D relies on ProActive and therefore theProActive.jar file must be included in the CLASSPATH. This is done automatically by the scripts launching the application. The source code is also included in the src directory (see below)

lib

The external libraries used by ProActive

docs

ProActive documentation including the full API doc

scripts/unix

Unix sh scripts for running the examples

scripts/windows

Windows bat batch files for running the examples

src

For source version only, the full source code of ProActive

compile

For source version only, the scripts to compile ProActive using Ant.

2.2.2. Set the CLASSPATH for using ProActive to write applications

In order to use ProActive to write your application you need to place in your CLASSPATH the following jar files :

[Note] Note

You do not need to modify your CLASSPATH permanently if you include the entries above using a Java IDE or a shell script.

Under Linux/Unix:

Open a Linux/Unix terminal, change to the install directory using cd and set the the CLASSPATH.

cd [Your ProActive install directory]
PA_PATH=$(pwd)
export CLASSPATH=.:${PA_PATH}/lib/dist/ProActive_examples.jar:\
	${PA_PATH}/lib/dist/ProActive/ProActive.jar:${PA_PATH}/lib/dist/ibis:\
	${PA_PATH}/lib/dist/asm-2.2.1.jar:\
	${PA_PATH}/lib/dist/log4j.jar:${PA_PATH}/lib/dist/xercesImpl.jar:\
	${PA_PATH}/lib/dist/fractal.jar:${PA_PATH}/lib/dist/bouncycastle.jar:\
	${PA_PATH}/lib/dist/javassist.jar

Under Windows:

Open a Windows command terminal by executing either cmd or command in Start-> Run

Change to the ProActive installation folder by using cd then set the CLASSPATH by executing the following commands.

cd [Your ProActive install directory]
set CLASSPATH=.;%CD%\ProActive_examples.jar;\
	%CD%\lib\dist\ProActive.jar;%CD%\lib\dist\ibis;\
	%CD%\lib\dist\asm-2.2.1.jar;%CD%\lib\dist\log4j.jar;\
	%CD%\lib\dist\xercesImpl.jar;%CD%\lib\dist\fractal.jar;\
	%CD%\lib\dist\bouncycastle.jar;%CD%\lib\dist\javassist.jar

In addition to the jar files above you may want to add the following jar files. None of them are used directly by the core functionalities of ProActive but only in part of the library. They are not needed at runtime if those specific functionalities are not used but they are needed to compile all the code.

  • trilead-ssh2.jar - used when tunneling with rmissh.

  • cryptix.jar, cog-jglobus-1.2.jar, puretls.jar, cryptix32.jar, cryptix-asn1.jar, cog-ogce.jar, cog-jglobus.jar - used to interface with Globus

  • fractal.jar, fractal-gui.jar, fractal-swing.jar, fractal-adl.jar - used by the the Fractal components

  • commons-discovery.jar, saaj-api.jar, commons-logging.jar, jaxrpc.jar, activation.jar, wsdl4j.jar, mail.jar,servlet-api.jar, xml-apis.jar, axis.jar, soap.jar - used by the Web Services features

  • bcel-5.1.jar, ibis-util-1.0.jar, colobus-0.1.jar, ibis-connect-1.0.jar, ibis-1.4.jar, bcel-5.1-fixes-1.0.jar - used by Ibis if configured as communication protocol

  • client.jar, ajo.jar, SystemDefaults.txt, njs_client.jar, scriptPlugin.jar, jh.jar - used when deploying to a UNICORE site.

  • classad.jar, glite-wms-jdlj.jar - used when deploying on gLite sites.

The jar files can be found under Proactive/lib and under ProaActive/dist/lib.

2.2.3. Create a java.policy File To Set Permissions

See Permissions in the JavaTM 2 SDK to learn more about Java permissions. The option -Djava.security.policy=pathToFile will specify which security policy file to use within ProActive. As a first approximation, you can create a simple security policy file granting all permissions:

grant {
  permission java.security.AllPermission;
};

[Note] Note

If you use the scripts provided with the distribution to run the examples an existing policy file named proactive.java.policy will be used by default.

2.2.4. A simple proactive-log4j file

See for logging using the Apache log4j. The option -Dlog4j.configuration=file:pathToFile will specify which logging policy file to use within ProActive. As a first approximation, you can create a simple logging policy file:

# This file represents the log4j config file for non regression tests.
# It is given as property (in the proactive.xml) when starting nonregression tests

# The default logging level is INFO
# The root logger logs in the test.log file

log4j.rootLogger=INFO,CONSOLE
log4j.logger.testsuite=INFO,CONSOLE

#log4j.logger.testsuite = TRACE

########### The following are existing categories in ProActive
#log4j.logger.proactive = INFO
#log4j.logger.proactive.classloader = DEBUG
#log4j.logger.proactive.events = DEBUG
#log4j.logger.proactive.runtime = DEBUG
#log4j.logger.proactive.body = DEBUG
#log4j.logger.proactive.mop = DEBUG
#log4j.logger.proactive.groups = DEBUG
#log4j.logger.proactive.sync_call = DEBUG
#log4j.logger.proactive.deployment = DEBUG
#log4j.logger.proactive.deployment.log = DEBUG
#log4j.logger.proactive.deployment.process = DEBUG
#log4j.logger.proactive.deployment.filetransfer = DEBUG,CONSOLE
#log4j.logger.proactive.filetransfer = DEBUG
#log4j.logger.proactive.nfe = FATAL
#log4j.logger.proactive.gc = DEBUG
#log4j.logger.proactive.ft = DEBUG
#log4j.logger.proactive.ft.cic = DEBUG
#log4j.logger.proactive.ft.pml = DEBUG
#log4j.logger.proactive.communication.transport.http = DEBUG
#log4j.logger.proactive.communication.rmi = DEBUG
#log4j.logger.proactive.communication.ssh = DEBUG
#log4j.logger.proactive.communication.transport.http = DEBUG
#log4j.logger.proactive.migration = DEBUG
#log4j.logger.proactive.communication.requests = DEBUG
#log4j.logger.proactive.examples = DEBUG

#log4j.logger.proactive.components = DEBUG
#log4j.logger.proactive.components.requests = DEBUG
#log4j.logger.proactive.components.activity = DEBUG
#log4j.logger.proactive.components.bytecodegeneration = DEBUG
#log4j.logger.proactive.components.adl = DEBUG
#log4j.logger.proactive.components.gui = DEBUG

#log4j.logger.proactive.p2p = DEBUG
#log4j.logger.proactive.p2p.startservice = DEBUG
#log4j.logger.proactive.p2p.vn = DEBUG
#log4j.logger.proactive.p2p.vn.service = DEBUG
#log4j.logger.proactive.p2p.nodes = DEBUG
#log4j.logger.proactive.p2p.acquaintances = DEBUG
#log4j.logger.proactive.p2p.first_contact = DEBUG
#log4j.logger.proactive.p2p.skeletons = DEBUG
#log4j.logger.proactive.p2p.skeletons.worker = DEBUG
#log4j.logger.proactive.p2p.skeletons.manager = DEBUG
#log4j.logger.proactive.p2p.daemon = DEBUG

#log4j.logger.proactive.security = DEBUG
#log4j.logger.proactive.security.node = DEBUG
#log4j.logger.proactive.security.session = DEBUG
#log4j.logger.proactive.security.body = DEBUG
#log4j.logger.proactive.security.manager = DEBUG
#log4j.logger.proactive.security.request = DEBUG
#log4j.logger.proactive.security.runtime = DEBUG
#log4j.logger.proactive.security.policy = DEBUG
#log4j.logger.proactive.security.policyserver = DEBUG
#log4j.logger.proactive.security.crypto = DEBUG
#log4j.logger.proactive.security.psm = DEBUG

#log4j.logger.proactive.skeletons = DEBUG
#log4j.logger.proactive.skeletons.taskpool = DEBUG
#log4j.logger.proactive.skeletons.structure = DEBUG
#log4j.logger.proactive.skeletons.environment = DEBUG
#log4j.logger.proactive.skeletons.application = DEBUG
#log4j.logger.proactive.skeletons.diagnosis	 = DEBUG
#log4j.logger.proactive.skeletons.system = DEBUG

#log4j.logger.proactive.scheduler = DEBUG
#log4j.logger.proactive.resourceManager = DEBUG

#log4j.logger.proactive.configuration = DEBUG
#log4j.logger.proactive.remoteobject = DEBUG,CONSOLE

#log4j.logger.proactive.jmx = DEBUG
#log4j.logger.proactive.jmx.mbean = DEBUG
#log4j.logger.proactive.jmx.notification = DEBUG

# Appender FILE writes to the file "tests.log".
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=tests.log
# the following recreates a file for each run
log4j.appender.FILE.Append=false
# Appender FILE uses the PatternLayout.
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
# %X{hostname} adds the hostname
# %X{runtime} adds the runtime url
log4j.appender.FILE.layout.ConversionPattern=%5p [%t]: %m%n


#CONSOLE uses PatternLayout
#and displays the associated message (%m)
#using the platform dependant separator (%n)
#Use %M for method names, 
#%X{hostname} for hostname and %X{runtime} for runtime url
#see log4j documentation for details

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
# %X{hostname} adds the hostname
# %X{runtime} adds the runtime url
#log4j.appender.CONSOLE.layout.ConversionPattern=%n%X{runtime} - [%20.20c{2}] %m
log4j.appender.CONSOLE.layout.ConversionPattern=%m %n
[Note] Note

If you use the scripts provided with the distribution to run the examples an existing log4j file named proactive-log4j will be used by default.

2.2.5. Run A Few Examples For Testing

You can try to run the test applications provided with ProActive. Each example comes with a script to launch the application. Depending on your operating system, the script you need to launch is located either in ProActive/scripts/unix or ProActive/scripts/windows. The source code of all the examples can be found in the directory ProActive/src/Examples/org/objectweb/proactive/examples/.

2.2.5.1. Reader/Writer

This example is the ProActive version of the Readers/Writers canonical problem. To illustrate the ease-of-use of the ProActive model, different synchronization policies can be applied without even stopping the application. This example is based on a easy to use Swing GUI.

  • script : readers.sh or readers.bat

  • source : examples/readers

2.2.5.2. The Dining Philosophers

This example is one possible implementation of the well-known Dining Philosophers synchronization problem. This example is based on a easy to use Swing GUI.

  • script : philosophers.sh or philosophers.bat

  • source : examples/philosophers

2.2.5.3. The N-Body Simulation

This example can be used later on as a deployment example for several machines, and also for the fault-tolerance features.

  • script : nbody.sh or nbody.bat

  • source : examples/nbody

2.3. IC2D Installation

2.3.1. Normal Usage Installation

You can download the archive file (a standard zip file) containing IC2D from the download section of the ProActive home page. You will be asked to accept the license agreement and provide a few details including your email address. Within a few minutes you will receive an email containing a password and an URL where you will be able to download the latest release of IC2D.

Unzip the archive using your favorite ZIP program, such as Winzip under Windows or the unzip command-line utility under most Linux/Unix systems. Unzipping the archive creates an IC2D directory and all the files contained in the archive go into this directory and its subdirectories.

Run IC2D from the installation folder to start monitoring. For information on using IC2D read Chapter 39, IC2D: Interactive Control and Debugging of Distribution

2.3.2.  Development Installation

If you want to develop IC2D or plugins for IC2D the installation steps are the following:

  1. Download and unpack the RCP/Plug-in Developers version of Eclipse.

  2. Install Subversion or your SVN client of choice.

  3. Download ProActive for development through the anonymous or authenticated SVN. The SVN and Eclipse configuration information can be found on the INRIA gForge website.

  4. Compile IC2D and ProActive by running

    cd [Your ProActive install directory]/compile
    ./build deploy
    ./build ic2d.libCopy
    
  5. Import the IC2D plugin by going to File --> Import.

    Import from the ProActive project in the workspace.

    Browse for the directory containing the IC2D plugins.

    The directory is ic2d-plugins-src in the ProActive installation directory.

    When the plugins have finished loading click on the Finish button and Eclipse should look like this:

  6. Install the Business Intelligence and Reporting Tools used by TimIt for profiling. To install go to Help-> Software Updates -> Find And Install.

    Select Europa Discovery:

    Select "Charting and Reporting" and then click the Select Required button:

  7. After the Birt installation is done, go to ic2dproduct and click Synchronize and then click on Launch Application. Don't worry if the launch fails we will fix that in the next step.

  8. Open the Run Dialog, click on ic2d.product, click on Plugins tab, select all the workspace plugins, click on the Add Required button, click on Apply, and then click on Run.

You now have a running IC2D application. Feel free to test and improve the code.

2.3.3. ProActive Scheduler GUI Installation

ProActive has a job scheduler that can be used for submitting tasks and examining results. For an introduction on how to use the job scheduler read the scheduler documentation present on the ProActive site

2.3.3.1. Normal Usage Installation

2.3.3.2. Development Installation