Test
Usługa umożliwia realizację zadań obliczeniowych dla bardzo dużych zbiorach danych lub też wielu bardzo małych zadań w jak najkrótszym czasie. Budowane środowisko umożliwia złożone analizy i obliczenia w takich problemach jak:
W ramach usługi można także dokonywać wizualizacji otrzymanych wyników badań. Przykładem takich wizualizacji mogą być grafiki prezentujące słowa nacechowane pozytywnie czy negatywnie (rysunki poniżej, im większy rozmiar czcionki danego słowa tym bardziej pozytywne/negatywne jest dane słowo). Na rysunkach przedstawiony jest wynik budowania słownika wykorzystywanego podczas analizy wydźwięku dla języka naturalnego.
Chmura słów - pozytywne zwroty
Chmura słów - negatywne zwroty
Proszę sprawdzić czy aplikowano o wszystkie niezbędne usługi w Portalu PLGRID. Więcej wymaganiach Complex Networks zamieszczono w osobnym rozdziale.
Należy wybrać jedną z opcji: Zleć zadanie QCG (formularz do zlecania) albo Edytor QCG (możliwość stworzenia własnego skryptu Pyton/bash do wykonania obliczeń)
Przykładowy skrypt QCG dostępny tutaj: qcg-test-bash.qcg
Dodatkowy plik tekstowy, dla którego będzie wykonane zliczenie liczby różnych słów w nim występujących: bible-kjv.txt
Complex Networks umożliwia zlecanie zadań obliczeniowych z wykorzystaniem poniżej przedstawionego formularza. Wszystkie parametry oraz ich znaczenie można znaleźć na stronie Format opisu zadań.
Po wskazaniu parametrów zadania możemy je uruchomić klikając na przycisk Zleć zadanie.
Każde z uruchomionych przez Portal Complex Networks zadań można podejrzeć w zakładce Zadania -> Moje zadania.
Ważnym punktem jest możliwość zapisuj specyfikacji zadania w postaci Szablonu - Zapisz jako szablon. Dzięki temu możemy zlecać podobne albo wręcz takie same zadania szybciej i prościej.
Należy przygotować dwa pliki - skrypt bash oraz tekstowy plik do zliczenia słów (nazwa pliku jest bardzo ważna w tym przypadku, ponieważ w skrypcie bash jest zapisana nazwa pliku przykładowego)
Najpierw musimy dodać pliki na jedną z naszych maszyn dostępowych - możemy połączyć się do nich poprzez SSH Dostęp do UI (User Interface) albo wykorzystanie GridFTP w Portalu Complex Networks.
Następnie tworzymy folder QCG-test-script
i przechodzimy do niego.
Do niego dodajemy pobrane wcześniej pliki - klikamy w przycisk Wgraj.
Pojawi się nowe okienko, do którego metodą przeciągnij/upuść albo poprzez kliknięcie w przycisk Wybierz plik dodajemy pliki potrzebne do uruchomienia zadania.
Poniżej widzimy poprawnie wgrane dwa pliki.
Następnie przechodzimy do formularza zlecania zadań QCG.
Wybieramy Nowe zadanie
Wybieramy aplikację BASH (skypt bash zostanie użyty do uruchomienia zadania), a w polu Plik główny wskazujemy plik ze skryptem.
Zaznaczamy wybór przy nazwie pliku i potwierdzamy przyciskiem Wybierz.
Następnie dodamy do zadania plik tekstowych, dla którego policzymy liczbę słów w nim występujących - zgodnie ze skryptem BASH. W tym celu klikamy na zakładkę Plik oraz wybieramy atrybut Stage in.
Wskazujemy plik podobnie jak przy skrypcie bash.
W tym momencie przykładowe zadanie jest ustawione i można je zlecić przyciskiem Zleć zadanie.
W konsekwencji otrzymujemy wynik jak poniżej (podgląd pliku wyjściowego) - plik można znaleźć wybierając Zadania -> Moje zadania i wchodząc w szczegóły zleconego zadania oraz wybierając Przeglądaj katalog roboczy.
Widok składa się co do zasady z 3 części:
Część pól z przedstawionego powyżej formularza pozostaje także i w tym widoku. Umożliwiają one dostosowanie zadania do naszych potrzeb. Bardzo ważnym jest wybór Aplikacji, tj. BASH albo Python, gdyż w ten sposób określamy jakiego rodzaju kod może zostać użyty do uruchomienia zadania.
W przykładzie poniżej widać wywołanie kodu BASH wc -w AFINN-111.txt. Należy zwrócić uwagę na wskazanie pliku AFINN-111.txt, plik ten został wybrany z repozytorium (po zleceniu zadania zostanie pobrany z repozytorium i przeniesiony na maszyny obliczeniowe - nie musimy nic dodatkowo kopiować!) Jeśli chcemy przenieść więcej plików należy je odnaleźć w repozytorium, a następnie pojedynczym kliknięciem myszy dodać do zadania. W celu dodania pliku w kodzie należy (po dodaniu go do zadania) ustawić kursor w odpowiednim miejscu kodu oraz kliknąć dwukrotnie na nazwę pliku (w poniższym przypadku można wybrać AFINN-111.txt
albo license.txt
w sekcji repozytorium). Usuwanie plików z zadania - kliknięcie krzyżyka po prawej stronie nazwy pliku.
kod python
END
Patrz przykład z przetwarzaniem danych sieciowych poniżej
Chcąc zlecić zadanie w języku Python należy zmienić typ Aplikacji z BASH na Python.
Następnie wyszukać interesujący nas fragment kodu, w przykładzie kod obliczający liczbę wystąpień poszczególnych słów w tekście - word_count.py
Wybieramy przycisk Użyj, a kod zostanie skopiowany do Edytora.
Następnie musimy do zadania dodać z repozytorium plik, dla którego chcemy wykonać analizę oraz zmodyfikować kod Python w taki sposób, żeby wskazać tenże plik.
W tym celu wyszukujemy w repozytorium interesujący nas plik, dodajemy go do zadania (tak samo jak wybieraliśmy podgląd kodu przykładowego), a następnie wskazujemy miejsce w kodzie gdzie chcemy dodać plik i klikamy dwukrotnie na jego nazwę (prawe zaznaczenie na poniższym zrzucie ekranu).
W efekcie widzimy zmodyfikowany kod w Edytorze.
Warto zwrócić uwagę na zakładkę Zaawansowane, gdzie to możemy określić parametry wykonania zadania zgodnie z Format opisu zadań. W przypadku zlecania zadań Python jest to bardzo ważne, ponieważ musimy wybrać odpowiedni moduł (z preinstalowanymi bibliotekami Python dla gridu Complex Networks).
W przedstawionym poniżej przypadku zlecamy zadanie obliczeniowe dla klastra Zeus, a to pociąga wybór modułu Python odpowiedniego właśnie dla tego klastra. W przypadku wyboru innego/dodatkowego klastra należy uwzględnić to w parametrze Moduły.
Odpowiednie biblioteki Python są już pre-instalowane w następujących modułach:
Python-Task - plgrid/tools/python/2.7.9
Python-Zeus - tools/python/2.7.5
Python-Bem - python
Python-Inula - plgrid/tools/python/2.7.3
W Przykładach kodu wybieramy Przetwarzanie sieci, a następnie wczytywanie sieci.
Dla klastrów innych niż Bem proszę dopisać kod python - <<END na początku skryptu, tak jak na poniższym przykładzie.
oraz END na końcu kodu.
Następnie określamy opis zlecanego zadania w zakładce Zaawansowane -> Opis.
Wybieramy Host (klaster) oraz odpowiedni moduł Python dla klastra.
Odpowiednie biblioteki Python są już pre-instalowane w następujących modułach:
Python-Task - plgrid/tools/python/2.7.9
Python-Zeus - tools/python/2.7.5
Python-Bem - python
Python-Inula - plgrid/tools/python/2.7.3
Wszystko gotowe i można zlecić zadanie.
Zostajemy poinformowani o nazwie zlecanego zadania oraz przeniesieni do podglądu naszych wszystkich zlecanych zadań.
Wchodzimy do zakładki Zadania/Edytor QCG
W polu Aplikacja wybieramy bash
Następnie wybieramy Przykład kodu Spark distributed
Na poniższym zrzucie widać przykładowy kod wywołujący zadanie z użyciem framework Spark - przykład zliczania słów w sposób rozproszony
Następnie musimy wybrać odpowiedni klaster obliczeniowy (niestety nie wszystkie wspierają Spark). Przechodzimy do zakładki Zaawansowane
Dalej wybieramy klaster Zeus oraz moduł Spark
W tym momencie mamy ustawione wszystkie niezbędne parametry do wywołania zadania. Możemy zlecić zadania klikając na przycisk Zleć zadanie
Status zadania możemy podejrzeć w zakładce Zadania/Moje zadania. Widzimy tutaj nazwę, numer, czas zlecenie oraz inne informacje związane z naszym zadaniem. Dodatkowo wybierając szczegóły możemy zobaczyć szczegółowe informacje dotyczące naszego zadania oraz wynik jego wykonania.
Więcej informacji można znaleźć na oficjalnej stronie usługi https://cn.plgrid.pl. Pytania proszę zadawać poprzez: https://helpdesk.plgrid.pl
Dodatkowo polecamy stronę Gdzie szukać pomocy?