professional documents
home
Upload
docsters
Upload
Powerpoint

Parallel programming in Java center doc


Parallel programming in Java Parallel programming in Java • Java has 2 forms of support for parallel programming built in: – Multithreading • Multiple threads of control (sub processes), useful for * Pseudo-parallelism within a single machine * Real parallelism on shared-memory machine – Remote Method Invocation (RMI) • Allows invocation on an object located at another machine • Useful for distributed-memory machines • Many additional libraries supporting parallel programming exist: – Our lab course Parallel Programming uses IPL (Ibis Portability Layer) Multithreading A thread has Its own program counter Its own local variables X All threads on same Java Virtual Machine share global variables Threads can communicate through shared variables Threads can run concurrently (on multiprocessor or multicore) or are time-sliced Creating threads in Java public class mythread extends Thread { public void hi() { System.out.println("hi"); } public void run() { System.out.println("hello"); } } mythread t1 = new mythread(); // allocates a thread mythread t2 = new mythread(); // allocates another thread t1.start(); // starts first thread and invokes t1.run() t2.start(); // starts second thread and invokes t2.run() t1.hi(); Thread synchronization Problem-1: Thread-1 does: X = X + 1; Thread-2 does: X = X + 2; Result should be +3, not +1 or +2. Need to prevent concurrent access to same data: mutual exclusion synchronization Mutual exclusion in Java public class example { int value; public synchronized increment (int amount) { value = value + amount; } } The synchronized keyword guarantees that only one call to increment is executed at a time More thread synchronization Problem-2: Sometimes threads have to wait for each other Condition synchronization Supported in Java with wait/notify/notifyAll wait blocks (suspends) a thread Notify wakes up (resumes) one blocked thread notifyAll wakes up all blocked threads Example: circular bounded buffer public class BoundedBuffer { // shared variables: int buf[SIZE], count, writepos, readpos = 0; public synchronized void put(int x) { //block if buffer full: while (count == SIZE) wait(); R W x x x x Count=4 public synchronized int get() { int x; // local variable //block if buffer empty: while (count == 0) wait(); x = buf[readpos]; count--; buf[writepos] = x; count++; writepos = (writepos + 1) mod SIZE; if (count == 1) notifyAll(); } } readpos = (readpos + 1) mod SIZE; if (count == SIZE-1) notifyAll(); return x; Remote Method Invocation RMI is two-way synchronous communication, much like RPC RMI invokes a method on a (possibly) remote object Integrates cleanly into Java's object-oriented model Example public interface Hello extends Remote { String sayHello(); } public class HelloImpl extends UnicastRemoteObject implements Hello { public String sayHello() { return "Hello World!"; } } Asynchronous communication with Java RMI Can you do asynchronous messages passing in Java? Yes: create a new thread to do the RMI for you and wait for the result Awkward to program, performance overhead IPL (Ibis Portability Layer) • Ibis: Java-centric communication system designed for grid computing – Supports heterogeneous and dynamic (malleable) systems – Discussed later in this class RMI Application Satin RepMI IPL GMI MPJ • IPL: flexible message passing library for Java TCP UDP P2P GM Panda Legend: Java Native Functionality of IPL • Based on setting up connections – Programmer can create send-ports and receive-ports – These can be connected in a flexible way: one-to-one, one-to-many (multicast), many-to-one • Programmer can define properties of connections and ports: – FIFO ordering, reliability, delivery mechanisms, streaming • IPL supports explicit message receipt, implicit message receipt (upcalls), polling More information Tutorials/documentation about multithreading and IPL are available through the web site of the lab course: http://www.cs.vu.nl/ppp Go for it!
flag this doc
60
2
not rated
0
4/23/2008
English
Preview

Java Network Programming

Semaj1212 4/23/2008 | 174 | 9 | 0 | technology
Preview

Network Programming and Java Sockets

Semaj1212 4/23/2008 | 144 | 6 | 0 | technology
Preview

Java

Semaj1212 4/23/2008 | 88 | 11 | 0 | technology
Preview

Web 2.0 and Java

Semaj1212 4/23/2008 | 499 | 34 | 0 | technology
Preview

Java 1.5

Semaj1212 4/23/2008 | 264 | 9 | 0 | technology
Preview

Java and XML

Semaj1212 4/23/2008 | 133 | 17 | 0 | technology
Preview

Java Security

Semaj1212 4/23/2008 | 85 | 8 | 0 | technology
Preview

Java Review Session

Semaj1212 4/23/2008 | 91 | 1 | 0 | technology
Preview

Java Solutions for Cheminformatics

Semaj1212 4/23/2008 | 58 | 0 | 0 | technology
Preview

Adding Reference Immutability to Java

Semaj1212 4/23/2008 | 66 | 1 | 0 | technology
Preview

Bluetooth and java – a perfect match

Semaj1212 4/23/2008 | 171 | 9 | 0 | technology
Preview

Emerging Java Technologies

Semaj1212 4/23/2008 | 90 | 10 | 0 | technology
Preview

Introduction to Java Server Faces

Semaj1212 4/23/2008 | 236 | 12 | 0 | technology
Preview

Java PathFinder 3.1

Semaj1212 4/23/2008 | 37 | 0 | 0 | technology
Preview

Java Performance Profiling and Optimization

Semaj1212 4/23/2008 | 116 | 2 | 0 | technology
Preview

UNIVERSIDADE FEDERAL DO RIO GRANDE

Semaj1212 7/10/2008 | 135 | 1 | 1 | business
Preview

UNIVERSIDADE ESTADUAL PAULISTA

Semaj1212 7/10/2008 | 123 | 0 | 0 | business
Preview

UNIVERSIDADE DE SÃO PAULO

Semaj1212 7/10/2008 | 178677 | 0 | 0 | business
Preview

UNIVERSIDADE DE SANTA CRUZ DO SUL

Semaj1212 7/10/2008 | 121 | 0 | 0 | business
Preview

UNIDADE DE ENSINO DE VITÓRIA DA CONQUISTA DEPARTAMENTO DE ENSINO

Semaj1212 7/10/2008 | 66 | 0 | 0 | business
Preview

TORNEIO DE FUTSAL DA FRANCOFONIA 2008

Semaj1212 7/10/2008 | 90 | 0 | 0 | business
Preview

TERMO DE RESPONSABILIDADE

Semaj1212 7/10/2008 | 215 | 1 | 0 | business
Preview

Tia Eliane Tours Tia Eliane

Semaj1212 7/10/2008 | 128 | 0 | 0 | business
Preview

TERMO DE RESCISÃO DE

Semaj1212 7/10/2008 | 363 | 1 | 0 | business
Preview

TERMO DE AUTORIZAÇÃO Eu

Semaj1212 7/10/2008 | 88 | 0 | 0 | business
 
review this doc