ProActive Parallel Suite

Podobne dokumenty
OW2 ProActive Parallel Suite: Building Flexible Enterprise CLOUDs

Programowanie obiektowe w Perlu

Wzorce projektowe strukturalne cz. 1

1. Wprowadzenie do C/C++

Rozproszone systemy internetowe. Wprowadzenie. Koncepcja zdalnego wywołania procedury

MiASI. Modelowanie analityczne. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Wywoływanie metod zdalnych

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Podejście obiektowe do budowy systemów rozproszonych

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Metody dostępu do danych

Współbieżność w środowisku Java

1. Wprowadzenie do C/C++

PLD Linux Day. Maciej Kalkowski. 11 marca Wydziaª Matematyki i Informatyki UAM

Język JAVA podstawy. wykład 1, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Model obiektu w JavaScript

0.1 Hierarchia klas Diagram Krótkie wyjaśnienie

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

Remote Method Invocation 17 listopada 2010

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Podejście obiektowe do budowy systemów rozproszonych

Subversion - jak dziaªa

Programowanie wspóªbie»ne

Programowanie obiektowe w C++ Wykªad 4

Wywoływanie metod zdalnych

Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1

Aplikacje RMI

Temat: Programowanie zdarzeniowe. Zdarzenia: delegacje, wykorzystywanie zdarze. Elementy Windows Application (WPF Windows Presentation Foundation).

Wzorce projektowe kreacyjne

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

Aplikacje RMI Lab4

Podstawy modelowania w j zyku UML

Programowanie wspóªbie»ne

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Programowanie obiektowe

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

przewidywania zapotrzebowania na moc elektryczn

Instrukcja laboratoryjna cz.3

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

Oprogramowanie systemów równoległych i rozproszonych Wykład 7

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

Informatyka w selekcji - Wykªad 4

Propozycja integracji elementów ±wiata gry przy u»yciu drzew zachowa«

Metody numeryczne i statystyka dla in»ynierów

Ukªady Kombinacyjne - cz ± I

WSNHiD, Programowanie 2 Lab. 2 Język Java struktura programu, dziedziczenie, abstrakcja, polimorfizm, interfejsy

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca Norbert Potocki db4o

Programowanie poprzez testy z wykorzystaniem JUnit

Programowanie rozproszone w języku Java

Programowanie obiektowe

Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Zaawansowane aplikacje internetowe - laboratorium Architektura Spring.

Decorator (dekorator)

Vincent Van GOGH: M»czyzna pij cy li»ank kawy. Radosªaw Klimek. J zyk programowania Java

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Co to jest NODE.JS? Nowoczesne środowisko programistyczne

Imi i nazwisko... Egzamin - Programowanie Obiektowe II rok informatyki, studia pierwszego stopnia, niestacjonarne Termin zerowy

Kompozycja i dziedziczenie klas

19. Obiektowo± 1 Kacze typowanie. 2 Klasy

PHP 5 język obiektowy

Tworzenie oprogramowania

Zdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Java: interfejsy i klasy wewnętrzne

Od wymagań do Javy w mgnieniu oka

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Architektura, oprogramowanie i uytkowanie klastra PCSS. Marek Zawadzki <mzawadzk@man.poznan.pl>

Opis efektów kształcenia dla modułu zajęć

Podziaª pracy. Cz ± II. 1 Tablica sortuj ca. Rozwi zanie

Wielowątkowość. Programowanie w środowisku rozproszonym. Wykład 1.

Obliczenia równoległe i rozproszone w JAVIE. Michał Kozłowski 30 listopada 2003

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Mechanizmy refleksji w Javie i C# Autor: Aleksander Nałęczyński

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1

JAVA W SUPER EXPRESOWEJ PIGUŁCE

RMI-2. Java Remote Method Invocation (RMI) na podstawie m.in. podręcznika firmy Sun Microsystems SYSTEMY ROZPROSZONE

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1

Podstawy otwartych języków programowania Przechowywanie danych

Język Java wątki (streszczenie)

Zaawansowane aplikacje WWW - laboratorium

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

msgbox("akcja: Początek, argument: " + argument.tostring()); Thread.Sleep(1000); //opóźnienie msgbox("akcja: Koniec"); return DateTime.Now.

Typy uogólnione. Robert A. Kªopotek Wydziaª Matematyczno-Przyrodniczy. Szkoªa Nauk cisªych, UKSW

Programowanie i struktury danych 1 / 44

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

Java Agent DEvelopment Framework Systemy Agentowe

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

Programowanie obiektowe

Tworzenie i wykorzystanie usług sieciowych

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

Języki i metody programowania Java. Wykład 2 (część 2)

Regulamin Usªugi VPS

Obliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Język programowania Scala + aktorzy Akka

Metody numeryczne. Wst p do metod numerycznych. Dawid Rasaªa. January 9, Dawid Rasaªa Metody numeryczne 1 / 9

Wprowadzenie do programowania współbieżnego

Transkrypt:

ProActive Parallel Suite Grzegorz Chimosz Wydziaª Matematyki, Informatyki i Mechaniki UW 8 stycznia 2009

Spis tre±ci 1 Programowanie wspóªbie»ne i rozproszone Architektura 2 3 Przykªad Bibliograa

Programowanie wspóªbie»ne i rozproszone Architektura Programowanie wspóªbie»ne i rozproszone Popularno± architektur wielordzeniowych, wieloprocesorowych i rozproszonych... i trudno± wykorzystania ich potencjaªu Du»a cz ± kodu zarz dza dodatkowymi strukturami danych i sprawdza, czy nie pojawiªy si przy tym bª dy Programowanie rozproszone jeszcze wi cej problemów ProActive Parallel Suite przybywa z odsiecz! I jeszcze trzeba to uruchomi!

ProActive Parallel Suite Programowanie wspóªbie»ne i rozproszone Architektura ProActive Parallel Suite to otwarty javowy middleware do oblicze«równolegªych i rozproszonych. Wspomaga: Wspiera: programowanie i projektowanie wrapping (C/C++, Fortran, MPI) uruchamianie i monitorowanie gotowe modele wspóªbie»no±ci P2P przesyªanie plików równowa»enie obci»enia i zapewnia odporno± na bª dy (wykonania)

O projekcie Programowanie wspóªbie»ne i rozproszone Architektura Zaanga»owani w projekt: ObjectWeb www.objectweb.org INRIA www.inria.fr CRNS www.cnrs.fr Uniwersytet Nicejski http://portail.unice.fr ActiveEon http://www.activeeon.com Strona domowa projektu: proactive.inria.fr

Wspierane technologie Programowanie wspóªbie»ne i rozproszone Architektura Systemy operacyjne Linux, Windows, Solaris, MacOS, SGI Irix Maszyny wirtualne Javy Sun, SGI, BEA, JRockit Protokoªy sieciowe ssh, rsh, sshgsi, rcp, scp, Unicore, Globus Gram Chmury obliczeniowe Amazon EC2

Architektura ProActive Parallel Suite Programowanie wspóªbie»ne i rozproszone Architektura ródªo: [1]

Architektura ProActive Parallel Suite Programowanie wspóªbie»ne i rozproszone Architektura ródªo: [2]

Obiekty aktywne (ang. active objects) Obiekt aktywny skªada si z: dokªadnie jednego w tku kolejki» da«potencjalnie wielu obiektów pasywnych po±rednika (ang. proxy)

Obiekty aktywne wªasno±ci Wªasno±ci obiektów aktywnych: brak wspóªdzielenia obiektów pasywnych gª bokie kopie przy wywoªaniu metod, co mo»e prowadzi do utraty spójno±ci obiekty aktywne je»eli s parametrami wywoªania s przekazywane przez referencje asynchroniczne» dania tworzenie odroczonych obiektów i oczekiwanie z konieczno±ci

Obiekty aktywne sposoby tworzenia Utworzenie nowej instancji 1 A a = ( A) ProActive. 2 newactive (A. class. getname (), params, node ); Klasa 1 class pa extends A implements RunActive {... } Uaktywnienie istniej cego obiektu 1 A a = new A ( obj, 7) ; 2 / *... * / 3 a = (A) ProActive. turnactive (a, node );

Oczekiwanie z konieczno±ci (ang. wait by necessity) Wywoªanie metody skªada si z dwóch etapów: 1» danie (nazwa, argumenty) powoduje utworzenie odroczonego obiektu (ang. future object) po obliczeniu wywoªywany obiekt ode±le wynik 2 odpowied¹ (wynik wywoªanej metody) wywoªuj cy mo»e kontynuowa swoj prac, nawet je»eli wynik nie jest dost pny asynchroniczno±

Oczekiwanie z konieczno±ci (ang. wait by necessity) Wywoªanie metody skªada si z dwóch etapów: 1» danie (nazwa, argumenty) powoduje utworzenie odroczonego obiektu (ang. future object) po obliczeniu wywoªywany obiekt ode±le wynik 2 odpowied¹ (wynik wywoªanej metody) wywoªuj cy mo»e kontynuowa swoj prac, nawet je»eli wynik nie jest dost pny asynchroniczno±

Aktywne obiekty w praktyce Przykªad 1 A ag = newactive (A. class. getname (), [...], VirtualNode ); 2 V v1 = ag. foo ( param ); 3 V v2 = ag. bar ( param ); 4 / *... * / 5 v1. bar () ; / / W a i t - By - N e c e s s i t y ródªo: [3]

Przezroczysto± mechanizmu wykonania Polimorzm obiektów aktywnych i zwykªych u»ywa si dokªadnie tak samo polimorczne s te» obiekty odroczone Oczekiwanie z konieczno±ci zapewnia zupeªnie przezroczyst synchronizacj obiekty odroczone s zupeªnie przezroczyste ródªo: [3]

Kolejkuj ce dane seq Rozpraszaj ce zadania farm pipe if while for Rozpraszaj ce dane divide and conquer map fork

Schemat farm Ró»ne dane s przetwarzane równolegle ródªo: [3]

Schemat pipe Reprezentuje obliczenia podzielone na etapy Etapy s obliczane równolegle ródªo: [3]

Schemat map Dzieli dane na mniejsze cz ±ci, do ka»dej przykªada funkcj i scala wynik ródªo: [3]

Schemat divide and conquer ródªo: [3]

U»ycie schematu na przykªadzie BLAST ródªo: [3]

U»ycie schematu na przykªadzie BLAST Schemat dla BLAST 1 Pipe blastpipe = new Pipe ( 2 new Fork ( 3 new Seq ( new ExecuteFormatDB () ), 4 new Seq ( new ExecuteFormatQ () )), 5 new Pipe ( 6 new Seq ( new ExecuteBlast () ), 7 new Seq ( new CleanBlast () )))); Schemat dziel i zwyci»aj dla BLAST 1 Skeleton root = new DaC ( 2 new DivideDB (), new DivideCondition (), 3 blastpipe, new ConquerResults () );

U»ycie schematu na przykªadzie BLAST Dziel 1 public class DivideCondition implements Condition { 2 public boolean evalcondition ( Blast param ) { 3 File file = param. getdatabasefile () ; 4 return file. length () > param. getmaxdbsize () ; 5 } 6 }

U»ycie schematu na przykªadzie BLAST I zwyci»aj 1 public class DivideDB implements Divide { 2 public Vector divide ( Blast param ) { 3 Vector < BlastParameters > children = new Vector < BlastParameters >() ; 4 Vector < File > files = dividedbfile ( param ); 5 for ( File newdbfile : files ) { 6 Blast newparam = new Blast ( param ); 7 param. setdbname ( newdbfile ); 8 children. add ( newparam ); 9 } 10 return children ; 11 } 12 }

U»ycie schematu na przykªadzie BLAST Przygotowanie do oblicze«1 Skeleton root = / *... * / ; 2 ResourceManager manager = 3 new ProActiveManager (" descriptor. xml ", " vn - name "); 4 Calcium calcium = new Calcium ( manager ); 5 Stream stream = calcium. getstream ( root );

U»ycie schematu na przykªadzie BLAST Zaªadowanie danych 1 stream. input ( new Blast ("db - file "," query - file1 ")); 2 stream. input ( new Blast ("db - file "," query - file2 ")); 3 stream. input ( new Blast ("db - file "," query - file3 ")); Odczytanie wyniku 1 Blast res1 = stream. getresult () ; 2 Blast res2 = stream. getresult () ; 3 Blast res3 = stream. getresult () ;

Przykªad Przykªad Bibliograa ProActive w dziaªaniu.

Bibliograa Przykªad Bibliograa ProActive in 5 minutes. [online: http://proactive.inria.fr/index.php?page= proactive_in_five_min], 2008. ProActive features. [online: http://proactive.inria.fr/userfiles/image/ ProActive_Features_Full.png], 2008. Denis Caromel. ProActive Tutorial. [online: http: //proactive.inria.fr/userfiles/file/presentation/ Tutorial-ProActive450slides-December-21-2007.pdf], 2007.