application 2 Wasp contains: behavior based algorithms in modeling multiagent systems

Similar documents
E-learning solutions in curve and surface design Corina DanaSimian

Abstract Memory The TupleSpace

Lecture Notes CPSC 224 (Spring 2012) Today... Java basics. S. Bowers 1 of 8

Pace University. Fundamental Concepts of CS121 1

Module 3 Web Component

Classes and Objects 3/28/2017. How can multiple methods within a Java class read and write the same variable?

Message-Passing Programming with MPI

CS506 Web Design & Development Final Term Solved MCQs with Reference

CS 251 Intermediate Programming Java I/O Streams

The Singleton Pattern. Design Patterns In Java Bob Tarr

Dining philosophers (cont)

Message-Passing Programming with MPI. Message-Passing Concepts

Agent Interaction SDK Java Developer Guide. About the Code Examples

DISCLAIMER COPYRIGHT List of Trademarks

Full file at

CHAPTER 7 OBJECTS AND CLASSES

CA341 - Comparative Programming Languages

Distributed Systems/Middleware JavaSpaces

A Tool for Comparing Resource-Constrained Project Scheduling Problem Algorithms

Procedural Java. Procedures and Static Class Methods. Functions. COMP 210: Object-Oriented Programming Lecture Notes 2.

CSS 533 Program 2: Distributed Java Space Servers Professor: Munehiro Fukuda Due date: see the syllabus

Course Content. Objectives of Lecture 22 File Input/Output. Outline of Lecture 22. CMPUT 102: File Input/Output Dr. Osmar R.

CS 251 Intermediate Programming Methods and Classes

CS 251 Intermediate Programming Methods and More

CMSC 202. Exceptions

Java: Classes. An instance of a class is an object based on the class. Creation of an instance from a class is called instantiation.

Holland Computing Center Kickstart MPI Intro

CS 152: Data Structures with Java Hello World with the IntelliJ IDE

Java Programming. MSc Induction Tutorials Stefan Stafrace PhD Student Department of Computing

ANT COLONY OPTIMIZED ROUTING FOR MOBILE ADHOC NETWORKS (MANET)

This exam is open book. Each question is worth 3 points.

Inter-process communication (IPC)

IBD Intergiciels et Bases de Données

Welcome to CSSE 220. We are excited that you are here:

Chapter 4 Defining Classes I

ICOM 4015: Advanced Programming

Exception Handling in Java. An Exception is a compile time / runtime error that breaks off the

2/9/2012. Chapter One: Introduction. Chapter Goals

How to make a "hello world" program in Java with Eclipse *

Chapter Goals. Chapter One: Introduction. Prerequisites. What Is Programming?

1. Java is a... language. A. moderate typed B. strogly typed C. weakly typed D. none of these. Answer: B

Class 9: Static Methods and Data Members

Chapter 1 Introduction to Computers, Programs, and Java

Course Outline. Introduction to java

Connector User s Manual. Jose Melchor Computing and Software Systems, University of Washington, Bothell

User Guide. The mom4j development team

Introduction to Java

B2.52-R3: INTRODUCTION TO OBJECT ORIENTATED PROGRAMMING THROUGH JAVA

13 th Windsor Regional Secondary School Computer Programming Competition

Linda, JavaSpaces & Jini

Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub

CHAPTER 7 OBJECTS AND CLASSES

IQTIDAR ALI Lecturer IBMS Agriculture University Peshawar

The Singleton Pattern. Design Patterns In Java Bob Tarr

Java Training For Six Weeks

Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson

Chapter 5: Procedural abstraction. Function procedures. Function procedures. Proper procedures and function procedures

The NERC Cluster Grid

Even though we created a folder for the workspace, we still have to let JCreator do the same. So click File, New, and then Blank Workspace.

CS111: PROGRAMMING LANGUAGE II

Introduction to Programming Using Java (98-388)

Introduction to Computer Science I

JVM ByteCode Interpreter

Text User Interfaces. Keyboard IO plus

1Z Oracle. Java Platform Enterprise Edition 6 Enterprise JavaBeans Developer Certified Expert

Application Development in JAVA. Data Types, Variable, Comments & Operators. Part I: Core Java (J2SE) Getting Started

Distributed object component middleware I - Java RMI

DOMjudge team manual. Summary. Reading and writing. Submitting solutions. Viewing scores, submissions, etc.

/* Copyright 2012 Robert C. Ilardi

Install Guide. Version 1.0 Demonstration. Copyright 2007 MGH

Distributed object component middleware I - Java RMI

Chapter 1 - Introduction. Copyright 2014 by John Wiley & Sons. All rights reserved. 1

Java Intro 3. Java Intro 3. Class Libraries and the Java API. Outline

Atelier Java - J1. Marwan Burelle. EPITA Première Année Cycle Ingénieur.

Lecture 1: Overview of Java

Chapter 27 Cluster Work Queues

7. System Design: Addressing Design Goals

Java: Comment Text. Introduction. Concepts

CS Programming I: File Input / Output

5.4. Events and notifications

SPRING 13 CS 0007 FINAL EXAM V2 (Roberts) Your Name: A pt each. B pt each. C pt each. D or 2 pts each

CSE 142 Su 04 Computer Programming 1 - Java. Objects

A Message Passing Standard for MPP and Workstations

A Third Look At Java. Chapter Seventeen Modern Programming Languages, 2nd ed. 1

Certified Core Java Developer VS-1036

Arrays. Comp Sci 1570 Introduction to C++ Array basics. arrays. Arrays as parameters to functions. Sorting arrays. Random stuff

CS/B.TECH/CSE(New)/SEM-5/CS-504D/ OBJECT ORIENTED PROGRAMMING. Time Allotted : 3 Hours Full Marks : 70 GROUP A. (Multiple Choice Type Question)

3 CREATING YOUR FIRST JAVA APPLICATION (USING WINDOWS)

Chapel Introduction and

Atelier Java - J2. Marwan Burelle. EPITA Première Année Cycle Ingénieur.

Lab5. Wooseok Kim

ActiveSpaces Transactions. Quick Start Guide. Software Release Published May 25, 2015

The Decorator Pattern. Design Patterns In Java Bob Tarr

Streams and File I/O

SYSTEM FOR PHD STUDENTS INFORMATION STORING AND CONTROL

Web Application Architecture (based J2EE 1.4 Tutorial)

Parallel Computing. Slides credit: M. Quinn book (chapter 3 slides), A Grama book (chapter 3 slides)

Week 9 Implementation

Anno Accademico Laboratorio di Tecnologie Web. Sviluppo di applicazioni web JSP

Ant Colonies, Self-Organizing Maps, and A Hybrid Classification Model

Transcription:

First International Conference Modelling and Development of Intelligent Systems Sibiu - Romania, 22-25 October, 2009 Parallel-Distributed Programming Tool for the Linda Programming Model Wasp based algorithms and applications Ernest Scheiber Dana Simian Abstract This note presents an implementation ofabstract the Piranha model to program parallel - distributed application and a development tool. We use the TSpaces framework from I.B.M. as a middleware The aim of this paper is to present the wasp based computational model and many for data exchanges. Our implementation does not introduce a new API but requires certain program structure. applications of wasp based algorithms. A general frame for designing a wasp based algorithm, starting from the classical problem of task allocation in a factory, is realized. The most important characteristics of the wasp computational model are underlined and the way of 1 Introduction particularization of these characteristics for each problem is presented. Original applications of wasp based algorithms in modeling multi agent systems, in solving optimization problems Even if and there in building is a lack a reinforcement of agreementsscheme on what for exactly a stochastic grid learning computing system or cloud are presented. computing are, the parallel - distributed programming API s or tools are one of the main ingredient to build such computing environment or application. 1 Linda Introduction is not a programming model but a set of operations that can be added to any language. Linda gives a way to communicate and synchronize different processes. We known the following Linda type development In the last ten frameworks years methods in Java: and TSpaces models frominspired I.B.M., from [6] andthe JavaSpaces behaviorfrom of social SunMicrosystems. insects like ants andthe wasps Piranha have model gainedisincreasing a parallel attention. - distributedcomputational computing model analogies based on tolinda, adaptive [2]. natural The paradigm multiagent behindsystems Piranha have is that served of dispatcher-worker. as inspiration for Themulti-agent dispatcher coordinates optimization theand activities control while algorithms the workers in asolve variety the received of domains tasks. and Between contexts. them, the Self-organization, communicationsdirect are programmed and indirect usinginteractions the Linda operations. between individuals Other known are important parallel - distributed characteristics computing of these models natural are MPI, multi-agent [5, 1], map-reduce. systems. Metaheuristics This note presents an implementation of the Piranha model to program parallel - distributed application and a development tool. We use the TSpaces framework, but instead other messaging service may inspired from nature represent an important approach to solve NP-difficult problems. It is important be used. The to actual identify messaging when a services problem (Sun can MessageQueue, be solved using apache-activemq these kind of or methods. qpid) own It the is the required goal of functionality this article ofto a Linda identify framework. some type The ofreason problems of our which development can be solved activities using consists waspincomputational the lack of free based correspondent algorithms software. and Atopreliminary give a general version frame was reported for design in [3]. these algorithms. The remainder of thisan paper application is organized to be used as follows: with theintool section is constrained 2 we present to a specific the wasp structure; computational it is composed model from anda the dispatcher classical thread problem and worker of task threads. allocation Between in athe factory. dispatcher Starting threadfrom and the thisworker problem threads we realize there are a frame asynchronous for design message models changes. based These on wasp messages behavior are kept and by apresent TSpaces many servermodels until they for are multi consumed. agents systems, The tool allows from us different to state fields. the network In section of workstations 3 we present involved a reinforcement the computation, scheme to for deploy stochastic and launch an application. learning automata, based on wasp behavior. In section 4 we present a wasp based algorithm for improving the performances of a co-mutation operator. The co-mutation operator is used in a hybrid approach for building multiple SVM kernels. Conclusions are presented in section 5. 2 The Structure of an Application We suppose that several computers in a network will perform the required computation. application 2 Wasp contains: behavior based algorithms in modeling multiagent systems A Console class - The Console launches to run the Dispatcher. The Java The self organization model that takes place within a colony of wasps was used for solving large complex problems, most of them with a dynamic character. In [18], Theraulaz et al. present 1 203

Parallel-Distributed Programming Tool for the Linda Programming Model On any workstation there is a Service class, it instantiates and starts the Workers. The application associated TSpace server, it keeps the messages until they are consumed. The structure of an application is outlined in Fig. 1. Console Service i Dispatcher W orker 1... W orker qi Network TSpaces Server Figure 1: The structure of an application. The Dispatcher and the Worker classes are threads. The constructors of the dispatcher and of the worker classes are responsible to establish the connection with the TSpaces server. The run methods of these Java threads contain the specific activities to solve the given problem. On a workstation it is possible to start several worker threads. The i index in Fig. 1 denotes a workstation on which q i worker threads are run. The Console and Service classes are independent from an application. Between the dispatcher thread and the worker threads there are asynchronous message exchanges. These messages are kept by a TSpaces server. The data to be exchanged between the dispatcher and the workers are wrapped into objects. To distinguish between different kinds of data, a tag field may be introduced. A message consumer (dispatcher or worker) waits until all the required messages are available. In this way the synchronization problems are solved as well as the coordination of the activities. 3 The anatomy of our implementation We shall analyze the codes of the above mentioned classes for a very simple application: the dispatcher sends a greeting message to each worker. After receiving the message, a worker responds indicating the name of its computer. Let us suppose that we use n workstations and that on the i th station there will be launched q i workers ( n i=1 q i = q). Some environment data are fixed in two property files: propconsole propservice Name Name AppName AppName Host Host Port Port TasksNumber q TasksNumber q ComputerTaskNumber q i ComputerFirstTaskIndex i 1 j=1 qj, q0 =0 where AppName, Host, Port identifies the name of the application TupleSpace and respectively the host of the TSpaces server with the corresponding port number. As we have mention, the dispatcher is launched by the Console class, while the workers are launched by the Service class. These two classes are independent of an application. 204

Ernest Scheiber The Console class The Service class package ******; package ******; import java.util.properties; import java.util.properties; import java.io.*; import java.io.*; public class Console{ Properties p=null; public class Service{ Properties p=null; public Console(String path2prop) { public Service(String path2prop) try{ try{ // Loads the properties FileInputStream fis=new FileInputStream fis=new FileInputStream(path2Prop+"propConsole"); FileInputStream(path2Prop+"propConsole"); p=new Properties(); p=new Properties(); p.load(fis); p.load(fis); catch(exception e){ catch(exception e){ System.out.println(e.getMessage()); System.out.println(e.getMessage()); System.exit(1); System.exit(1); public static void main(string[] args){ public static void main(string[] args){ String fs=system.getproperties(). String fs=system.getproperties(). getproperty("file.separator"); getproperty("file.separator"); String path2prop; String path2prop; // An argument may contain the path to the property file if(args.length>0) if(args.length>0) path2prop=args[0]+fs; path2prop=args[0]+fs; else else path2prop=""; path2prop=""; Console obj=new Console(path2Prop); Service obj=new Service(path2Prop) // Set the properties String appname=obj.p.getproperty("appname"); String appname=obj.p.getproperty("appname"); String host=obj.p.getproperty("host"); String host=obj.p.getproperty("host"); String sport=obj.p.getproperty("port"); String sport=obj.p.getproperty("port"); String stasks=obj.p.getproperty("tasksnumber"); String stasks=obj.p.getproperty("tasksnumber"); String sindex=obj.p.getproperty( "ComputerFirstTaskIndex"); String scomputertasks=obj.p.getproperty( "ComputerTaskNumber"); int port=integer.parseint(sport); int port=integer.parseint(sport); int tasks=integer.parseint(stasks); int tasks=integer.parseint(stasks); int index=integer.parseint(sindex); int computertasks=integer.parseint(scomputertasks); // The dispatcher is launched into execution // The required number of workers are // launched into execution Dispatcher dispacher=new Dispatcher(appName, Worker[] worker=new Worker[computerTasks]; host,port,tasks); for(int i=0;i<computertasks;i++){ dispacher.start(); worker[i]=new Worker(appName,host, port,tasks,index+i); worker[i].start(); } be The wrapper class that contain the data to be exchanged between the dispatcher and workers may 1 package tshello ; 2 import java. io. Serializable ; 4 public class DataWrapper implements Serializable{ 5 // tag=0 message sent by the dispatcher 6 // tag=1 message sent by a worker 7 public int tag ; 8 public String mesaj ; 10 public DataWrapper( String mesaj, int tag) { 11 t his. mesaj=mesaj ; 12 t his. tag=tag ; 13 } 14 } The connection to the TupleSpace server is made in the constructors of the Worker and Dispatcher classes. 205

The code of the Worker class is Parallel-Distributed Programming Tool for the Linda Programming Model 1 package tshello ; 2 import com.ibm. tspaces. ; 3 import java. net. ; 4 import java. io. ; 6 public class Worker extends Thread{ 7 private int id ; 8 private TupleSpace ts=null ; 9 private String tsname ; 10 private int tasks ; 11 private PrintStream f ; 13 public Worker(String tsname, String host, int port, int tasks, int id){ 14 t his. tsname=tsname ; 15 t his.id=id; 16 t his. tasks=tasks ; 17 t s=starttuplespace(tsname, host, port ) ; 18 try{ 19 f=new PrintStream ( worker +id+. txt ); 20 } 21 catch(exception e){ 22 System.out. println( File error : +e.getmessage ()); 23 } 24 } 26 public void run (){ 27 Tuple tuple=null ; 28 DataWrapper d=null ; 29 S tring source=tsname+id ; 30 S tring dest=tsname+ +id ; 31 try{ 32 Tuple template=new Tuple(source,new FieldPS (DataWrapper. class )); 33 t uple=(tuple ) ts. waittotake( template ); 34 d=(datawrapper)tuple. getfield (1). getvalue (); 35 i f (d. tag==0){ 36 S tring msg= Mesage received by +id+ from the dispatcher :\ n +d. mesaj ; 37 System.out. println(msg); 38 f. println(msg); 39 I n etaddress addr=inetaddress. getlocalhost (); 40 S tring s=addr. gethostname ( ) ; 41 S tring mesout= Hello from +id+ at +s ; 42 d=new DataWrapper (mesout, 1 ) ; 43 FieldPS ps=new FieldPS(d); 44 t s. write(dest, ps ); 45 f. close (); 46 } 47 } 48 catch(exception e){ 49 System.out. println( Exception Worker : +e. getmessage ()); 50 } 51 } 53 private TupleSpace starttuplespace( String tsname, String host, int port){ 54 TupleSpace ts=null ; 55 try{ 56 Tuple active=tuplespace. status ( host, port ); 57 i f ( ( active==null ) ( active. getfield (0). getvalue (). equals( NotRunninng ))){ 58 System.out. println( TupleSpace Server is not available ); 59 System. exit (1); 60 } 61 t s=new TupleSpace(tsName, host, port ); 62 } 63 catch(tuplespaceexception e){ 64 System.out. println( TupleSpaceException +e. getmessage ()); 65 System. exit (1); 66 } 67 return ts ; 68 } 69 } Finally, in the Dispatcher class, there are send messages to the workers (the scatter method) and are waiting to receive the corresponding responses (the gather method): 206

Ernest Scheiber 1 package tshello ; 2 import com.ibm. tspaces. ; 3 import java. io. ; 5 public class Dispatcher extends Thread{ 6 private int tasks ; 7 private TupleSpace ts=null ; 8 private String tsname ; 9 private PrintStream f ; 11 public Dispatcher( String tsname, String host, int port, int tasks) { 12 t his. tasks=tasks ; 13 t h is. tsname=tsname ; 14 t s=starttuplespace(tsname, host, port ) ; 15 try{ 16 f=new PrintStream( dispatcher. txt ); 17 } 18 catch(exception e){ 19 System.out. println( File error : +e.getmessage ()); 20 } 21 } 23 public void run (){ 24 try{ 25 s catter (); 26 g ather (); 27 t s. cleanup (); 28 } 29 catch(exception e){ 30 System.out. println(e. getmessage ()); 31 } 32 } 34 private void scatter (){ 35 S t ring mesout= Hello from the dispatcher! ; 36 DataWrapper d=new DataWrapper(mesOut,0); 37 try{ 38 FieldPS ps=new FieldPS(d); 39 Tuple multi=new Tuple (); 40 for( int i =0;i<tasks ; i ++){ 41 S tring dest=tsname+i ; 42 Tuple nexttuple=new Tuple( dest, ps ); 43 m ulti.add(new Field(nextTuple )); 44 } 45 TupleID [] ids=ts. multiwrite( multi ); 46 } 47 catch(tuplespaceexception e){ 48 System.out. println( TupleSpaceException scatter0 +e.getmessage ()); 49 } 50 System.out. println( Scatter OK ); 51 } 53 private void gather (){ 54 Tuple tuple, template ; 55 DataWrapper d=null ; 56 try { 57 for( int i =0;i<tasks ; i ++){ 58 S tring source=tsname+ +i ; 59 template=new Tuple(source,new FieldPS (DataWrapper. class )); 60 t uple=(tuple ) ts. waittotake( template ); 61 d=(datawrapper)tuple. getfield (1). getvalue (); 62 i f ( d. tag==1){ 63 System. out. println(d.mesaj ); 64 f. println(d.mesaj ); 65 } 66 } 67 f. close (); 68 } 69 catch(exception e){ 70 System.out. println( Exception gather +e. getmessage ()); 71 } 72 } 74 private TupleSpace starttuplespace( String tsname, String host, int port ){...} 75 } 207

4 An example Parallel-Distributed Programming Tool for the Linda Programming Model The sixteen grid problem (www.ams.org/ams/16-grid.html). Each of the numbers 1,2,...,16 is used exactly once in the empty cells to form arithmetic expressions connected by symbols for the four basic operations. Each row (column) is an arithmetic expression, read and performed left to right (top to bottom), disregarding the usual order of operations, to yield the result at the right (bottom). - =-60 + + + - =29 + + - - - - =-14 + - + - - - =32 =28 =1 =57 =27 A solution, presented in [4] is based on a parallelization scheme of the backtracking algorithm. Based on the domain decomposition method, there is a more efficient way to solve this problem. In the set on n order permutations, P n, considering the lexicographic order the first permutation is (1, 2,...,n) and the last is (n, n 1,...,1). Relative to this order, it may compute the m-th permutation, 1 m n!. The first q 1 =(n 1)! elements of P n have 1 on the first position, the next q 1 elements have 2 on the first position and so on. In the group having i on the first position, there are n 1 subgroups with q 2 =(n 2)! elements with the second element equals respectively with 1, 2,...,i 1,i+1,...,n. If the first s 1 elements are fixed, i 1,...,i s 1 then there exits n s + 1 groups with q s =(n s)! elements, having on the i-th position an element of {1,...,n}\{i 1,...,i s 1 }. To find the s-th element of the m-th permutation, we compute the group number t s having the i s element as constant, t s = m q s, and finally i s will be the l s -th element of the sequence 1,...,n, after we have deleted i 1,...,i s 1, where l s t s (mod n s +1),l s {1, 2,...,n s +1}. If there are p workers, then the set of all n! permutations are equally divided into p intervals. Each worker generates sequentially the permutations of its attached interval and verifies the restrictions of the problem. The unique solution of the sixteen grid problem is 1-2 4 15 =-60 + 12 + 8 + 14-5 =29 + + - 13-7 - 9-11 =-14 + - + - 3 16-10 - 6 =32 = 28 =1 =57 =27 5 The Development Tool To run the application a lot of activities are to be performed: to deploy the application, to launch the Service program on each workstation and finally to launch the Console on the host station. To assist these activities, a development tool was created. The Service program becomes a servlet and we use the apache-tomcat as a servlet container Web server. The Console program which starts the dispatcher makes the requests to the Service servlets, too. To the network of workstations it is associated a second TSpaces server to keep the names of the involved computers - denoted as the tuple space of the network. The tool contains two parts: The Advertiser serves to state the network of workstations. Using the Advertiser a computer is linked to the network of workstations to perform a parallel-distributed computing. 208

Ernest Scheiber The graphical interface of the Advertiser allows to Declare the computer as a member of the network of workstations - i.e. a tuple with the name of the computer is written into the tuple space of the network; Remove the computer from the network - i.e. remove the above define tuple from the tuple space of the network; Show the list of the computers in the network of workstations. Figure 2: The window of the Advertiser tool. The Developer allows to Generate the folders of the application; Compile and archive the service part of the application; Deploy the service part to the workstations of the network. The deployment is done with the apache-tomcat-deployer; Compile the console part of the application. Launch the console to run. In the Console class the request are programmed using the apache commons-httpclient software; Undeploy the service part of the application. These targets are executed through apache-ant. The Developer is installed only on the host workstation. A number of parameters are required: The name of the application, The host and the port of the application tuple space, The number of the worker threads, The path to the apache-ant and The username and password for the manager application of apache-tomcat. The list of the computers name in the network is required, too. This list may be generated with the Advertiser, contained in the Developer, too. The scenario to run a parallel-distributed application using the framework involves: 1. To set up the network of workstations: (a) On launches the tuple space associated to the network; 209

Parallel-Distributed Programming Tool for the Linda Programming Model (b) On each workstation starts the apache-tomcat Web server and, with the Advertiser, declares the availability of that computer to join to the network of workstations. 2. Using the Developer, on the host workstation, we can install, deploy, start the tuple space associated to the application and execute the parallel-distributed computation launching the Console. The current version of the framework may be downloaded from the author s Web page http: //cs.unitbv.ro/site/pagpers/scheiber. The archive contains several other examples: a numerical integration, quicksort, the queens problem, the graphic representation of the Mandelbrot set, the dinning philosophers problem. Conclusions. An implementation of the Piranha model for a parallel-distributed application is developed. The implementation does not introduce a new API but requires certain program structure. In addition we have created a tool to assist the development of an application that can be ported to any Java enabling platform. As a drawback of our approach is that, if a workstation dies then a running application never finishes. We intend to work on this problem. The security constraints are that of the apache-tomcat Web server. References [1] R. BISSELING, Parallel Scientific Computation. A structured approach using BSP and MPI, Oxford Univ. Press, 2004. [2] G. A. PAPADOPOULOS, F. ARBAB, Coordination models and languages. CWI Report, SEN- R9834, 1998. [3] SCHEIBER E., 2007, A TSpaces Based Framework for Parallel - Distributed Applications. Knowledge Engineering Principles and Techniques 1 (2007), Cluj University Press, 341-345. [4] SCHEIBER E., 2009, A Parallelization scheme of Some Algorithms. Knowledge Engineering Principles and Techniques 2 (2009), Studia Universitas Babeş-Bolyai, Informatica, 244-248. [5] M. SNIR, D. OTTO, S. HUSS-LEDERMAN, D. WALKER, J. DONGARRA, MPI: The Complete Reference. MIT Press, Cambridge, MA, 1996. [6] * * *, TSpaces-User s Guide & Programmer s Guide, Distributed with the software, Version 2.1.2, 2000. Ernest Scheiber Transilvania University of Braşov Faculty of Mathematics and Computer Science str. Iuliu Maniu 50 ROMANIA E-mail: scheiber@unitbv.ro 210