In presentation the idea of automatically generated web interface for remote laboratory is presented. The concept is based on suitably prepared set of metadata, that is used to generate web client. In presented solution each remote experiment, sends metadata concerning user interface just before experiment session is started.
Main advantages of this solution include: easier deployment and decreased development costs. This concept can be applied for various e-learning areas. The working example of such interface is shown and discussed.
In presentation the idea of automatically generated web interface for remote laboratory is presented. The concept is based on suitably prepared set of metadata, that is used to generate web client. In presented solution each remote experiment, sends metadata concerning user interface just before experiment session is started.
Main advantages of this solution include: easier deployment and decreased development costs. This concept can be applied for various e-learning areas. The working example of such interface is shown and discussed.
This document describes sequential and parallel quicksort algorithms. Sequential quicksort has average complexity of O(n log n) but worst case of O(n^2). Parallel quicksort partitions the array, sorts subarrays in parallel threads, and waits for threads to complete to improve performance over sequential quicksort. It uses a queue to store threads if processors are busy and chooses split keys through various methods like first element or median. New threads are only created if the subarray size is above a minimum to reduce overhead.
This document describes sequential and parallel quicksort algorithms. Sequential quicksort has average complexity of O(n log n) but worst case of O(n^2). Parallel quicksort partitions the array, sorts subarrays in parallel threads, and waits for threads to complete to improve performance over sequential quicksort. It uses a queue to store threads if processors are busy and chooses split keys through various methods like first element or median. New threads are only created if the subarray size is above a minimum to reduce overhead.
2. Podstawowe założenia
MPI
|| PVM
C++ || C
Parametry:
• N liczb całkowitych Int32
• p komputerów = p procesów, gdzie p ≅ 12
3. Ogólny schemat
Etap
0 – sprawy organizacyjne
Etapy 1,...,m-1
–
–
–
Przygotowanie do podziału grupy procesorów według
elementu dzielącego
Procesor – nadzorca grupy określa podział
Wykonanie podziału 2 podgrupy
Etap
–
–
m – zakończenie
Grupy złożone z pojedyńczych procesorów
Sortowanie sekwencyjne elementów procesów
4. Etap 0 – sprawy organizacyjne
Proces
nr. 1 (pierwszy uruchomiony) – master
Rola mastera:
–
–
–
–
Przyjęcie zgłoszeń pozostałych procesów
Początkowe ponumerowanie pozostałych procesów
Wysłanie odpowiednich porcji danych do procesów 2,
3, ..., p
Funkcja pierwszego nadzorcy (dla całości danych)
5. Przygotowanie do podziału – etap k
dla k<m
Wybranie
przez nadzorcę elementu dzielącego
– mediana z 5 elementów
Wysłanie przez nadzorcę elementu dzielącego
do wszystkich procesów w swojej grupie
Każdy z procesów w grupie tworzy dwa zbiory:
- elementy mniejsze (od elementu dzielącego)
- elementy większe lub równe
Każdy z procesów w grupie informuje
nadzorcę o liczności obu zbiorów (ozn. Lm, Lw)
6. Określenie podziału na etapie k, dla
k<m
Sortowanie przez nadzorcę numerów procesów po
liczbie elementów w zbiorach o elementach mniejszych
od elementu dzielącego (czyli po Lm)
Wyliczenie przez nadzorcę numeru procesu, w którym
znajdzie się element dzielący
Wysłanie przez nadzorcę do procesów w grupie:
- nowego numeru procesu (kolejność po sortowaniu)
- numerów procesów docelowych dla mniejszego zbioru
danych (z uwzględnieniem liczby elementów do
przesłania każdemu z nich)
7. Podział na etapie k – ilustracja
Po sortowaniu (proces reprezentuje para (Lm,Lw)):
(8,2) (7,3) (5,5) (3,7) (1,9)
Element dzielący znajdzie się w procesie nr. 3, bo
(8+7+5+3+1)/10 = 2.4 ≅ 2
Przesyłanie danych (bez elementu dzielącego):
Nr. 3
5 elementów Nr. 2
Nr. 4
3 elementy
Nr. 1
Nr. 5
1 element
Nr. 1
Nr. 2
3 elementy
Nr. 3
Nr. 1
2 elementy
Nr. 4
8. Kryteria przy przesyłaniu danych...
Jak najmniejsza ilość przesłań
Jak najkrótsza wiadomość
Jak najbardziej równomierne rozłożenie elementów na
procesy w obu podgrupach (procesy o numerach
mniejszych od numeru procesu z elementem dzielącym,
i reszta)
Uwzględnienie konieczności przesłania elementu
dzielącego
Wzór ???
9. Podział na etapie k dla k<m
wykonanie
Dla
–
–
-
każdego procesu grupy:
Rozesłanie „zbędnych” elementów do odpowiednich
procesów
Przyjęcie dodatkowych danych w sposób
asynchroniczny
Wybranie
nadzorców dla 2 nowych grup –
procesy o najmniejszych numerach w
podgrupach
I jeszcze raz, czyli etap (k+1)
10. Etap m – zakończenie
p
grup (czyli 1 grupa = 1 proces) względnie
uporządkowanych
Sortowanie elementów każdego procesu
algorytmem QuickSort
Poniżej CQS = 50 elementów zmiana
sortowania na InsertionSort
Zapisanie danych każdego procesu w pliku
<nr>.txt, gdzie <nr> jest aktualnym numerem
procesu
12. Komunikaty
GOTOWY
NUMER
DANE
NADZORCA[numery
procesów w grupie]
LICZBA[mniejsze, większe]
PRZEKAZ[procesy, liczby elementów]
SORTUJ
KONIEC