22
Javelin Internet-based parallel computing using Java

Javelin Internet-based parallel computing using Java

Embed Size (px)

Citation preview

Page 1: Javelin Internet-based parallel computing using Java

Javelin

Internet-based parallel computing using Java

Page 2: Javelin Internet-based parallel computing using Java

Themen

Global Computing Zielsetzungen Grundkonzept Problemstellungen Struktur eines Javelin Programms Daten und Versuchsergebnisse Zusammenfassung und Ausblick

Page 3: Javelin Internet-based parallel computing using Java

Global Computing

Auslastung der am Internet hängenden Computer.

Idee einer Parallelrechner Infrastruktur im Internet.

Bereits existierende Projekte und Beispiele

Javelin

Page 4: Javelin Internet-based parallel computing using Java

Zielsetzungen Benutzbarkeit Sicherheit Privatsphäre Load Balancing Fehlertoleranz

Page 5: Javelin Internet-based parallel computing using Java

Grundkonzept

Clients

Hosts

Brokers

Page 6: Javelin Internet-based parallel computing using Java

Broker Name Service

BNSBNS

Host/ClientHost/Client

BrokerBroker

1. Beim BNS registrieren

5. Connect

3. Broker list2.

BN

S lo

okup

Page 7: Javelin Internet-based parallel computing using Java

Broker Management Jeder Broker kann nur eine feste

Anzahl von Hosts verwalten. Nur Rechner mit permanentem

Internetzugang und fester IP sind als Broker brauchbar.

Unterscheidung in primäre und sekundäre Broker.

Page 8: Javelin Internet-based parallel computing using Java

Programmausführung1. Client meldet sich an Broker an2. Client sendet ID und

Klassenname an Broker3. Host fragt bei Broker nach

ausführbarem Code4. Broker überträgt Client ID,

Klassenname und alle nötigen Daten an Host.

5. Die Anwendung wird in einem eigenen Thread ausgeführt.

6. Resultate werden an den Client zurückgeliefert.

ClientClient

BrokerBroker

HostHost

Page 9: Javelin Internet-based parallel computing using Java

Arbeitsaufteilung Work Stealing Verwaltung einer Liste mit

Aufträgen Verwaltung einer Liste mit Hosts Probalistische Suche nach Arbeit Deterministische Suche nach

Arbeit

Page 10: Javelin Internet-based parallel computing using Java

Deterministischer Ansatz

Page 11: Javelin Internet-based parallel computing using Java

Deterministischer Ansatz

Page 12: Javelin Internet-based parallel computing using Java

Deterministischer Ansatz

Page 13: Javelin Internet-based parallel computing using Java

Fehlertoleranz

Page 14: Javelin Internet-based parallel computing using Java

Fehlertoleranz

Page 15: Javelin Internet-based parallel computing using Java

Fehlertoleranz

Page 16: Javelin Internet-based parallel computing using Java

Aufbau eines Javelin-Programms Client Klasse zum Starten und zur

Übergabe von Parametern. Host Klasse zur Ausführung auf

einem Host Rechner. Work Klasse zur eigentlichen

Berechnung der Problems.

Page 17: Javelin Internet-based parallel computing using Java

Client - Klassepackage javelin.beispiel

Public class Client implements ResultListener, DoneListener {

public Client (String broker) {

jClient = new JavelinClient(„javelin.beispiel.Host“, broker);

dm = new JavelinDDeque(new Work(), this);

}

Public void handleResult(Serializable result) { }

Public void workDone() {

jClient.terminate();

}

Public static void main(String[] args) {

Client client = new Client(args[0]);

}

Page 18: Javelin Internet-based parallel computing using Java

Host - Klassepackage javelin.beispiel

public class Host implements Runnable {

public Host() {

dm = new JavelinDDeque();

}

public void run() {

for(Work work = (Work)dm.getWork(); work != null; work = (Work)dm.getWork())

dm.returnResult(work.doWork());

}

}

Page 19: Javelin Internet-based parallel computing using Java

Work - Klassepackage javelin.beispiel;

public class Work implements Splittable, Serializable {

public String doWork() {

.... return result;

}

public Splittable[] split() {

Work[] works = {new Work(par 1), new Work(par 2)};

return works;

}

public int getSplitSize() {

return 2;

}

}

Page 20: Javelin Internet-based parallel computing using Java

Daten und Versuchsergebnisse

Page 21: Javelin Internet-based parallel computing using Java

Daten und Versuchsergebnisse

Page 22: Javelin Internet-based parallel computing using Java

Zusammenfassung und Ausblick

Praktische Anwendungen

Probleme

Aktueller Stand von Javelin