Developers EMAIL:
Alessandro Bonfanti
Massimiliano Torregiani

sourceforge.net Logo

ISTRICE DOCUMENTATION
ISTRICE DOC
-- INSTALLING ISTRICE --

GET THE SOURCE DISTRIBUTION

The source code can be found at:
   http://www.sourceforge.net/projects/istrice

Instruction to compile ISTRICE can be found
here.

SUPPORTED PLATFORM/ARCHITECTURE

Current ISTRICE support :

Compiler
gcc/g++
2.95-3.x-4.x

Platform
linux
all
solaris >=2.8




-- CONFIGURE THE ISTRICE ENVIRONMENT --


CONFIGURATION FILES

The default location of the configuration files is /usr/local/etc use --prefix during the configure invokation to change it, if this directory doesn't exist or the files are not found, ISTRICE search the configuration file in /etc .

EXECUTABLES

 
Istrice processes are :

istriceMS
The server process (the brain)
istriceSLS
Second layer server (the worker)
gccwrapper/g++wrapper
gcc wrapper
istriceAdmin Textual adminitstration program
istriceConfig Graphical configuration builder
istriceConsole Graphical monitoring tool

CONFIGURE THE ENVIRONMENT USING 'istriceConfig'

With istriceConfigurator
you can configure all ISTRICE setting using a graphical interface.
If you prefer to configure manually the environment read the next sections of this manual.

CONFIGURE THE MASTER SERVER PROCESS

   Edit the file istriceMS_conf.xml.

  <Info>

     <QoSPolicy> BALANCED </QoSPolicy>

     <socketChannelPort> 11701 </socketChannelPort>

     <overload> 10 </overload>
     <Remark>
NONE </Remark>
  </Info>

  where :

QoSPolicy
Quality of Service (QoS) algorithm used by RAC [BALANCED, MAX_POWER, TASK_BALANCED]
QosRecovery
Use recovery algorithm when no suitable SLS is found
socketChannelPort
Port number of the MS where it offers its own IOR
Remark
Unused


   Add the list of the allowed clients, ex:

  <Clients>

    <Client>
      <host> localhost.localdomain
</host>
      <Remark> NONE </Remark>       
   
</Client>

    <Client>
      <host> host1.localdomain
</host>
      <Remark> NONE </Remark>       
   
</Client>

  </Clients>

  where :
 

host
the allowed client (computer where you can compile using ISTRICE)
Remark Not used

  Add the list of allowed SLS

  <SLSs>

    <SLS>
      <host>
localhost.localdomain </host>  
      <maxTasks> 4
</maxTasks>
      <maxLoad> 1.0 </maxLoad>
      <nice> NORMAL </nice>            
    </SLS>

    <SLS>
      <host>
host1.domain1 </host>  
      <maxTasks> 8
</maxTasks>
      <maxLoad> 2.0 </maxLoad>
      <nice> LOW </nice>
    </SLS>

    <SLS>
      <host>
hostn.domainn </host>  
      <maxTasks> 4
</maxTasks>
      <maxLoad> 0.4 </maxLoad>
      <nice> LOW </nice>
    </SLS>

  </SLSs>

host
Allowed SLS hostname (computer where compilation will be executed).
maxTasks Maximum simultaneous compilation tasks.
maxLoad Maximum system load allowed.
nice The nice of compilation process (LOW,LORMAL or HI).

Enable/disable the admin interface

  <AdminInterface>
    <statust>
ENABLED </status>  
    <password> test
</password>
  </AdminInterface>

status
Interface status (ENABLED/DISABLED)
password Interface password



CONFIGURE THE SLS PROCESS

  Edit the file istriceSLS_conf.xml.

<Info>
  <QoSPolicy>
TASK_BALANCED </QoSPolicy>
  <cacheDir>
/tmp/istriceCache </cacheDir>
  <Remark>
NONE </Remark>   
</Info>

where :

cacheDir
The cache directory path
Remark
Unused

<MS>
  <host>
localhost </host>   
  <port>
11701 </port>
</MS>


 where :

host
The Master Server hostname
port
The Master Server port (default 11701)


Compiler list:

<Compilers>

  <Compiler>
    <type> gcc </typet>   
    <path>
/prog/gcc-4.0.2/bin/gcc </patht>
  </Compiler>

  <Compiler>
    <type> cc </typet>   
    <path>
/prog/cc/bin/cc </patht>
  </Compiler>

</Compilers>

where :

type
The compiler type (gcc/cc)
path
Path to compiler executable



CONFIGURE THE CLIENTS

  Edit the file dccclient_conf.xml.

<Info>
  <Remark>
NONE </Remark>   
</Info>

Remark
Unused

<MS>
   
<host> localhost </host>   
   
<port> 11701 </port>
</MS>

  where :

host
The Master Server hostname
port
The Master Server port (default 11701)


-- USING ISTRICE --

USING ISTRICE WITH THE configure SCRIPT (generated with automeke/autoconf)

  Generally opensource distribution is released with configure script. This script process Makefile.in and generate the final Makefile
  If you want use ISTRICE with configure you must set this environment variables:

  using bash:

   
export CC = /usr/bin/gccwrapper
    export CXX = /usr/bin/g++wrapper


  or using csh:

   
setenv CC /usr/bin/gccwrapper
    setenv CXX /usr/bin/g++wrapper


 Now configure is ready to use ISTRICE and will generate Makefiles that use ISTRICE.
 The defaul RPM installation path for these wrapper is /usr/bin , you can change this setting using the --prefix flag in the configure script.


STANDALONE MODE

  Calling directly the executables.

  Edit your Makefile and substitute:

  for gcc
   gccwrapper

  for g++
    g++wrapper


  if no Makefile is needed, call directly the wrapper

  example:
   gccwrapper -Wall -c a.c -o a


PARALLEL COMPILATION

  Parallel compilation is obtained using the GNUmake '-j' parameter .

  example:
   make -j 4

  This command execute four job in parallel.
  File dependencies must be calculate correctly, generally using configure the dependencies are recalculated after its execution.


EXAMPLE OF A REAL CONFIGURATION



ISTRICE MASTER SERVER (IP:192.168.0.20)
server.serverdomain

ISTRICE  SLS
sls.domain1
ISTRICE  SLS
sls.domain2

ISTRICE CLIENT
client1.domain1
ISTRICE CLIENT
client2.domain1
ISTRICE CLIENT
client.domain2
ISTRICE CLIENT
client.domain3


In this example we have three different domain , two SLSs and four allowed clients.
The configurarion should be:



MASTER SERVER (istriceMS_conf.xml)


<?xml version="1.0" encoding="UTF-8"?>
<MasterServer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="msSchema.xsd">

<Info>
  <QoSPolicy>
BALANCED </QoSPolicy>
  <QosRecovery> false </QosRecovery>

  <socketChannelPort> 11701 </socketChannelPort>

  <Remark> NONE </Remark>   
</Info>


<Clients>

    <Client>
      <host> client1.domain1
</host>
      <Remark> NONE </Remark>       
   
</Client>

    <Client>
      <host> client2.domain1
</host>
      <Remark> NONE </Remark>       
   
</Client>

    <Client>
      <host> client.domain2
</host>
      <Remark> NONE </Remark>       
   
</Client>

    <Client>
      <host> client.domain3
</host>
      <Remark> NONE </Remark>       
   
</Client>

  </Clients>

  <SLSs>

    <SLS>
      <host>
sls.domain1 </host>  
      <maxTasks> 4
</maxTasks>
     
<maxLoad> 1.4 </maxLoad>

      <nice> LOW </nice>            

    </SLS>

    <SLS>
      <host>
sls.domain2 </host>  
      <maxTasks> 2
</maxTasks>
     
<maxLoad> 1.0 </maxLoad>

      <nice>LOW </nice>            
    </SLS>

  </SLSs>


  <AdminInterface>
    <statust>
ENABLED </status>  
    <password> test
</password>
 
</AdminInterface>

</MasterServer>



SLS (istriceSLS_conf.xml)


<?xml version="1.0" encoding="UTF-8"?>
<SecondLayerServer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="slsSchema.xsd">

<Info>
  <cacheDir>
/tmp/istriceCache </cacheDir>
  <Remark>
NONE </Remark>   
</Info>

<MS>
  <host>
server.serverdomain </host>   
  <port>
11701 </port>
</MS>

<Compilers>

  <Compiler>
    <type> gcc </typet>   
    <path>
/prog/gcc-4.0.2/bin/gcc </patht>
  </Compiler>

  <Compiler>
    <type> cc </typet>   
    <path>
/prog/cc/bin/cc </patht>
  </Compiler>

</Compilers>

</SecondLayerServer>



CLIENTS (dccclient_conf.xml)


<?xml version="1.0" encoding="UTF-8"?>
<dccclient xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="dccclientSchema.xsd">

<MS>
  <host>
server.serverdomain </host>   
  <port>
11701 </port>
</MS>

</dccclient>