Oxygen HPC OpenMP fondamenti. Carmine Spagnuolo

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Oxygen HPC OpenMP fondamenti. Carmine Spagnuolo"

Transcript

1 Oxygen HPC OpenMP fondamenti Carmine Spagnuolo

2 1 Oxygen HPC Cluster Oxygen Ambiente - Module Environment - Portable Batch System 2 OpenMP 31 fondamend Modello di esecuzione OpenMP core DireGve OpenMP Roadmap 2014 Università degli Studi di Salerno

3 1 Oxygen HPC Cluster Oxygen Ambiente - Module Environment - Portable Batch System 2 OpenMP 31 fondamend Modello di esecuzione OpenMP core DireGve OpenMP Roadmap 2014 Università degli Studi di Salerno

4 Hardware: 9 x DELL PowerEdge PowerEdge C6220: - Processors: 2 x Intel(R) Xeon E5-2680, 8C, 27GHz, 20M Cache, 8GT/s, 130W TDP, Turbo, HT,DDR3-800/1066/1333/1600 MHz; - Memory: 256GB DDR3; - Hard Drive: 6 x 1TB; - Network: 2 x Intel CorporaDon I350 Gigabit, 2 x Intel CorporaDon 82599EB 10- Gigabit SFI/SFP+ Oxygen 2014 Università degli Studi di Salerno

5 Hardware: 12 x GPU NVIDIA Tesla M2090: - CUDA Driver Version / RunDme Version: 55 / 55 - CUDA Capability Major/Minor version number: 20 - Total amount of global memory: 5GB - MulDprocessors, ( 32) CUDA Cores/MP: 512 CUDA Cores - GPU Clock rate: 1301 MHz (130 GHz) - Memory Clock rate: 1848 Mhz - Memory Bus Width: 384- bit - L2 Cache Size: bytes Oxygen 2014 Università degli Studi di Salerno

6 wwwisislabit:8092/phpldapadmin PBS ssh p Oxygen 2014 Università degli Studi di Salerno

7 Nodi Oxygen: - Oxygen[1-8] - Oxygen1 (2 GPU) - Oxygen5 (8 GPU) SSH - ssh p SSH Key Exchange - ssh- keygen t rsa - cat ssh/id_rsa >> ssh/authorized_keys Oxygen - Ambiente 2014 Università degli Studi di Salerno

8 L ambiente utente è gesdto tramite: Environment Modules - hop://modulessourceforgenet/ Uno strumento per aiutare gli utend a gesdre il loro ambiente di shell Unix o Linux, permeoendo di gesdre le variabili di ambiente in modo dinamico Modules can be loaded and unloaded dynamically and atomically, in a clean fashion Oxygen - Module 2014 Università degli Studi di Salerno

9 Environment Modules: module [ switches ] [ sub- command ] [ sub- command- args ] sub- command 1 available (av) 2 load module- name 3 unload module- name 4 whads module- name 5 list 6 swap module- name1 module- name2 7 purge Oxygen - Module 2014 Università degli Studi di Salerno

10 Oxygen - Module

11 Ambiente di esecuzione: Portable Batch System (PBS) è un sistema di gesdone e controllo del carico su un insieme di nodi: Queuing Scheduling Monitoring PBS 2014 Università degli Studi di Salerno

12 Flow di esecuzione: - Creazione: script Unix per comunicare i vari parametri del job PBS: tempo di esecuzione (walldme), numero e caraoerisdche delle risorse e come eseguire il job - So9omissione: comando qsub [opdons] script_name - Esecuzione: verificato stato comando qstat [opdons] queue- name? - Finalizzazione: quando un job termina lo standard output ed error sono salvad in file e copiad nella cartella dalla quale il job è stato sooomesso PBS 2014 Università degli Studi di Salerno

13 Job flow: - Creazione - Sooomissione DireGve: - #PBS - l walldme=hh:mm:ss - #PBS - l pmem=size- GB - #PBS - l nodes=n:ppn=m (N può essere un pardcolare nodo del sistema) - #PBS - q queuename - #PBS j file_name Modalità interagva: - qsub - I - l nodes=1:ppn=1 - l walldme=4:00:00 PBS 2014 Università degli Studi di Salerno

14 Job flow: - Creazione: script Unix per comunicare i vari parametri del job PBS: tempo di esecuzione (walldme), numero e caraoerisdche delle risorse e come eseguire il job PBS 2014 Università degli Studi di Salerno

15 TORQUE PBS, basato sul progeoo PBS originale (OpenPBS, NASA Ames Research Center): - hop://wwwadapdvecompudngcom/products/open- source/torque/ - hop://wwwadapdvecompudngcom/support/download- center/torque- download/ - Feature: 1 Fault Tolerance 2 Scheduling Interface 3 Scalability 4 Usability PBS TORQUE MAUI Scheduler 2014 Università degli Studi di Salerno

16 MAUI scheduler: - hop://wwwadapdvecompudngcom/products/open- source/maui/ (registrazione) - Features: 1 Scalability 2 Rich administrator dashboard tools 3 Simplified HPC job submission and management 4 Grid and muld- cluster workload management capabilides 5 Enforce usage accoundng budgets or provide pay- for use PBS TORQUE MAUI Scheduler 2014 Università degli Studi di Salerno

17 TORQUE PBS installazione: /configure - - with- default- server=one - - with- server- home=/oxygen/var/ spool/pbs - - with- rcp=scp - - with- debug - - enable- nvidia- gpus - - with- nvml*- include=/oxygen/compilers/cuda/55/include - with- nvml- lib=/oxygen/ compilers/cuda/55/lib64 2>&1 tee configure_torquelog make j numero_di_processi make packages torque- package- clients- linux- x86_64sh - - install torque- package- devel- linux- x86_64sh install (solo head node) torque- package- doc- linux- x86_64sh install (solo head node) torque- package- mom- linux- x86_64sh - - install torque- package- server- linux- x86_64sh install (solo head node) trucco echo /opt/torque/lib > /etc/ldsoconfd/torqueconf *NVIDIA Management Library (NVML): A C- based API for monitoring and managing various states of the NVIDIA GPU devices PBS TORQUE MAUI Scheduler 2014 Università degli Studi di Salerno

18 MAUI scheduler installazione: /configure - - with- pbs=/opt/torque - - with- spooldir=/opt/maui make j numero_di_processi make install Configurazione ambiente PBS e MAUI: oxyegn_set_envsh in /etc/profiled/ #oxygen setup /etc/profiled/modulessh export PATH=$PATH:/opt/torque/bin:/opt/torque/sbin:/opt/maui/sbin:/ opt/maui/bin NOTE OpenMPI /configure - - prefix=/oxygen/compilers/mpi/openmpi/ java- - oracle- 160_ enable- mpi- java - - with- jdk- bindir=/oxygen/compilers/java/oracle/160_25/bin - - with- jdk- headers=/oxygen/compilers/java/oracle/160_25/include - - with- tm=/opt/torque - - enable- mpi- thread- muluple PBS TORQUE MAUI Scheduler 2014 Università degli Studi di Salerno

19 Tempi di esecuzione: UDlizzare le API disponibili nella piaoaforma udlizzata Soluzione Veloce- Veloce Ume ls ac aout myjoberr real 0m0004s wall clock Dme (from start to finish the call) user 0m0003s CPU Dme (user- mode code) sys 0m0000s - CPU Dme (kernel code) user+sys CPU total Ume Oxygen performance 2014 Università degli Studi di Salerno

20 PBS Demo

21 1 Oxygen HPC Cluster Oxygen Ambiente 1 Oxygen HPC Cluster Oxygen Module Environment - Portable Batch System 2 OpenMP 31 fondamenu Roadmap 2014 Università degli Studi di Salerno

22 OpenMP (Open MulDprocessing) è un API muldpiaoaforma per la creazione di applicazioni parallele su sistemi a memoria condivisa (Fortran, C e C++) L obiegvo principale di OpenMP è quello di semplificare lo sviluppo di applicazioni muldthread RiferimenD: hop://openmporg/ hop://openmporg/mp- documents/omp- hands- on- SC08pdf Common Mistakes in OpenMP and How To Avoid Them A CollecUon of Best PracUces, Michael Süß and Claudia Leopold OpenMP Università degli Studi di Salerno

23 Compilatori: GNU: gcc 42 in poi [- fopenmp] Oracle [- xopenmp] Intel [- Qopenmp or openmp] PGI (Portland Group Compilers and Tools) [- mp] hop://openmporg/wp/openmp- compilers/ OpenMP Università degli Studi di Salerno

24 OpenMP 31

25 OpenMP 31

26 OpenMP 31

27 OpenMP core syntax I costrug udlizzad in OpenMP sono diregve al compilatore: #pragma omp construct [clause [clause] ] Esempio: #pragma omp parallel num_threads(4) ProtoDpi delle funzioni e i Dpi: #include <omph> Compilazione GCC: gcc - fopenmp hellompc - o helloout HelloWorld Example: #ifdef _OPENMP #include <omph> #endif void main() { #pragma omp parallel { int ID=omp_get_thread_num(); prin ( hello(%d),id); prin ( world(%d)\n,id); hello(3)hello(1)hello(5)world(5) hello(0)world(0) world(3) world(1) hello(2)world(2) hello(4)world(4) OpenMP 31

28 OpenMP Creazione dei Thread Fork- Join Parallelism: il master thread distribuisce un team di thread dinamicamente OpenMP Fork-Join Parallelism 2014 Università degli Studi di Salerno

29 OpenMP Fork-Join model

30 OpenMP creazione dei Thread Il construoo parallel consente di creare i thread Definizione del numero di thread: 1 Clausola alla diregva parallel: #pragma omp parallel num_threads(4); 2 RunDme funcdon: omp_set_thread_num(x); 3 Environment variable: export OMP_NUM_THREADS=x Example: #ifdef _OPENMP #include <omph> #endif void main() { double A[1000]; omp_set_num_threads(4); #pragma omp parallel { int ID=omp_get_thread_num(); func(id,a); BARRIER prin ( all done\n ); OpenMP 31

31 OpenMP sincronizzazione DireGve: cridcal atomic barrier ordered flush lock (simple e nested) In presuto da Golang OpenMP 31

32 OpenMP sincronizzazione DireGve: criucal solo un thread alla volta entra nella regione cridca atomic barrier ordered flush lock (simple e nested) criucal Example: float res; #pragma omp parallel { float B; int i,id,nthrds; id=omp_get_thread_num(); nthrds=omp_get_num_threads(); for(i=id;i<niters;i+nthrds){ B=big_job(); #pragma omp criucal cosume(b,res); I thread aoendono il loro turno e solo un thread alla volta chiama la consume OpenMP 31

33 OpenMP sincronizzazione DireGve: cridcal atomic operazioni in mutua esclusione barrier ordered flush lock (simple e nested) atomic Example: #pragma omp parallel { double tmp, B; B = DOIT(); tmp = big(b); #pragma omp atomic X += tmp; Operazione atomica solo sulla leoura/ aggiornamento di X OpenMP 31

34 OpenMP sincronizzazione DireGve: cridcal atomic barrier ogni thread aoende finché tug non raggiungono la barriera ordered flush lock (simple e nested) barrier Example: #pragma omp parallel { #pragma omp master prin ( I am the MASTER\n ); prin ( ID %d,id); #pragma omp barrier prin ( all done\n ); OpenMP 31

35 OpenMP sincronizzazione DireGve: cridcal atomic Barrier ordered flush lock (simple e nested) OpenMP 31 ordered Example: int i=0; #pragma omp parallel for schedule(stauc)\ ordered for ( i = 0; i <= 10; ++i) { // Do something here #pragma omp ordered prin ("test() iteradon %d\n", i); test() iteradon 0 test() iteradon 1 test() iteradon 2 test() iteradon 3 test() iteradon 4 test() iteradon 5 test() iteradon 6 test() iteradon 7 test() iteradon 8 test() iteradon 9 test() iteradon 10

36 OpenMP sincronizzazione DireGve: cridcal atomic barrier ordered flush lock (simple e nested) flush Example: double A; A = compute(); flush(a); // flush to memory to make sure other // threads can pick up the right value Definisce un sequence point dove ad ogni thread è garandta la consistenza della memoria OpenMP 31

37 OpenMP sincronizzazione DireGve: cridcal atomic barrier ordered flush lock (simple e nested) Modello di memoria: Relaxed Consistency Variante della weak consistency Le operazioni S rispeoano l ordine sequenziale in ogni thread Le operazioni di W e R non possono essere riordinate rispeoo le operazioni S: S W, S R, R S, W S, S S (S=sincronizzazione, W=write e R=read) OpenMP 31

38 OpenMP sincronizzazione DireGve: cridcal atomic barrier ordered flush lock (simple e nested) simple lock Example: Il rilascio del lock implica il flush delle variabili visibili da tug I thread omp_lock_t lck; omp_init_lock(&lck); #pragma omp parallel private (tmp, id) { id = omp_get_thread_num(); tmp = do_lots_of_work(id); omp_set_lock(&lck); prin ( %d %d, id, tmp); omp_unset_lock(&lck); omp_destroy_lock(&lck); OpenMP 31

39 OpenMP Worksharing Consentono la distribuzione dell esecuzione di una regione di codice (in a clever fashion) Worksharing: 1 loop 2 secdons/secdon 3 single 4 task Barriera implicita in uscita ma non in ingresso (clausola nowait può eliminarla) OpenMP 31

40 OpenMP Worksharing Worksharing: 1 loop 2 secdons/secdon 3 Single 4 task La variabile i diventa automadcamente privata ad ogni thread, ciò può anche essere realizzato tramite la clausola private(i) for Example: #pragma omp parallel { #pragma omp for for (i=0;i<n;i++){ independent_work(i); OpenMP 31

41 OpenMP Worksharing Worksharing: 1 loop 2 secdons/secdon 3 Single 4 task Clausola schedule: StaDc: esecuzione divisa in chunk, assegnazione round- robin Dynamic: ogni thread richiede un chunk alla volta Guided: esecuzione divisa in chuck di taglia differente, assegnazione dinamica (caso speciale Dynamic) Run- Dme: controllato da variabili di ambiente OpenMP 31 for Example: Codice sequenziale: for (i=0;i<n;i++){ a[i]=a[i]+b[i]; Single Program MulCple Data: #pragma omp parallel { int id, i, Nthrds, istart, iend; id = omp_get_thread_num(); Nthrds = omp_get_num_threads(); istart = id * N / Nthrds; iend = (id+1) * N / Nthrds; if (id == Nthrds- 1) iend = N; for(i=istart;i<iend;i++) {a[i]=a[i]+b[i]; Worksharing: #pragma omp parallel schedule(stauc,1) { #pragma omp for for (i=0;i<n;i++){ work(i);

42 OpenMP Worksharing Worksharing: 1 loop 2 secdons/secdon 3 Single 4 Task Trucco per testare la dipendenza: Verificare che un loop sequenziale produca lo stesso risultato in reverse order OpenMP 31 for Example: int i, j, A[MAX]; j = 5; for (i=0;i< MAX; i++) { j +=2; A[i] = big(j); int i, A[MAX]; #pragma omp parallel for for (i=0;i< MAX; i++) { int j = 5 + 2*i; A[i] = big(j); Data dependencies: A[0] = 0; A[1] = 1; for(i = 3; i < 99; i++){ A[i] = A[i- 1] + A[i- 2];

43 OpenMP Worksharing Worksharing: 1 loop 2 secdons/secdon 3 single 4 task Clausola collapse(n) for Example: NO error nested loop #pragma omp parallel { #pragma omp for for (i=0;i<n;i++){ #pragma omp for for (j=0;j<n;j++){ work(i,j); #pragma omp parallel for collapse(2) for (i=0;i<n;i++){ for (j=0;j<n;j++){ work(i,j); OpenMP 31

44 OpenMP Worksharing Worksharing: 1 loop 2 secdons/secdon 3 single 4 task Clausola reducdon(op,var): op: +, -, *, MIN,MAX var: shared Viene creata una copia locale della variabile (inizializzata in modo appropriato +,0 *,1 +,0) alla terminazione della regione parallela viene aggiornato il valore della variabile condivisa for Example: double ave=00, A[MAX]; int i; for (i=0;i< MAX; i++) { ave + = A[i]; ave = ave/max; double ave=00, A[MAX]; int I; #pragma omp parallel for reducuon (+:ave) for (i=0;i< MAX; i++) { ave + = A[i]; ave = ave/max; OpenMP 31

45 OpenMP Worksharing Worksharing: 1 loop 2 secuons/secuon 3 single 4 task OpenMP 31 for Example: int main() { #pragma omp parallel secuons\ num_threads(4) { prin ("Hello from thread OUT %d\n", omp_get_thread_num()); prin ("Hello from thread OUT %d\n", omp_get_thread_num()); #pragma omp secuon prin ("Hello from thread %d\n", omp_get_thread_num()); #pragma omp secuon prin ("Hello from thread %d\n", omp_get_thread_num()); #pragma omp secuon Hello from thread 0 prin ("Hello from thread %d\n", Hello from thread 0 omp_get_thread_num()); Hello from thread OUT 3 #pragma omp secuon Hello from thread OUT 3 prin ("Hello from thread %d\n", Hello from thread 1 omp_get_thread_num()); Hello from thread 2

46 OpenMP Worksharing Worksharing: 1 loop 2 secdons/secdon 3 single 4 task Denota un blocco di codice eseguibile da un solo thread single Example: #pragma omp parallel { do_many_things(); #pragma omp single { exchange_boundaries(); do_many_other_things(); Alla terminazione del blocco è presente una barriera implicita OpenMP 31

47 OpenMP Worksharing Worksharing: 1 loop 2 secdons/secdon 3 single 4 task DireGva introdooa in OpenMp 30 e migliorata in 31 e 40 Task sono unità di lavoro indipendend Ogni task viene assegnato a un thread Il rundme system decide dinamicamente come eseguire i task OpenMP 31

48 OpenMP Worksharing Worksharing: 1 loop 2 secdons/secdon 3 single 4 task Un thread prepara l esecuzione dei task: packaging (code and data) execudon (un thread del team esegue il task) I task sono gesdd in una coda OpenMP garandsce che alla terminazione della regione parallela ogni task è terminato OpenMP 31

49 OpenMP Worksharing Worksharing: 1 loop 2 secdons/secdon 3 Single 4 task La diregva task è udle per la parallelizzazione di paoern irregolari e funzioni ricorsive Soluzione 1: Troppa sincronizzazione (nested parallel regions) Poca flessibilità OpenMP 31 task Example: Soluzione 1: void preorder(node *p) { process(p- >data); #pragma omp parallel secuons if (p- >le ) #pragma omp secuon preorder(p- >le ); if (p- >right) #pragma omp secuon preorder(p- >right); Soluzione 2: void preorder (node *p) { process(p- >data); If (p- >le ) #pragma omp task preorder(p- >le ); if (p- >right) #pragma omp task preorder(p- >right);

50 OpenMP Worksharing Worksharing: 1 loop 2 secdons/secdon 3 Single 4 task Sincronizzazione task: taskwait task Example: void traverse(node *p) { If (p- >le ) #pragma omp task traverse(p- >le ); if (p- >right) #pragma omp task traverse(p- >right); if(postorder) #pragma omp taskwait process(p- >data); OpenMP 31

51 OpenMP RunUme Library Modificare/Verificare il numero di thread: - omp_set_num_threads(n) - omp_get_num_threads() - omp_get_thread_num() - omp_get_max_threads() Regione parallela? - omp_in_parallel() GesDone dinamica del numero di thread tra le regioni parallele: - omp_set_dynamic() - omp_get_dynamic() Numero di processori disponibili? - omp_num_procs() OpenMP 31

52 OpenMP Data sharing Nei costrug è possibile definire la visibilità delle variabili: shared private firstprivate, privata ma inizializzata col valore della variabile prima della regione parallela Thread number: 5 x: 5 lastprivate, privata ma alla terminazione della regione Thread number: 9 x: 9 parallela il valore è quello dell uldma Thread number: iterazione 4 x: 4 OpenMP 31 lastprivate Example: x=44; #pragma omp parallel for lastprivate(x) for(i=0;i<=10;i++){ x=i; prin ("Thread number: %d x: %d \n",omp_get_thread_num(),x); prin ("x is %d\n", x); Thread number: 1 Thread number: 2 Thread number: 7 Thread number: 3 Thread number: 8 Thread number: 10 Thread number: 0 Thread number: 6 x is 10 x: 1 x: 2 x: 7 x: 3 x: 8 x: 10 x: 0 x: 6

53 PADABS 2014 Università degli Studi di Salerno

54 wwwdmasonorg wwwisislabit

Si digita login e password e si clicca su accedi. Si apre la finestra di collegamento:

Si digita login e password e si clicca su accedi. Si apre la finestra di collegamento: Corso di Laurea Specialistica Ingegneria Informatica Laboratorio di Calcolo Parallelo Prof. Alessandra d Alessio GUIDA AL LABORATORIO DI CALCOLO PARALLELO Il progetto SCoPE (www.scope.unina.it) ha messo

Dettagli

CLUSTER COKA. Macchine e Risorse

CLUSTER COKA. Macchine e Risorse CLUSTER COKA Macchine e Risorse Il cluster per il progetto COKA si compone complessivamente delle seguenti 5 macchine: rd coka 01 : server con il MIC e le GPU K20; rd gpu 01 : server con GPU C1060; rd

Dettagli

Laboratorio Turing @ Centro Calcolo

Laboratorio Turing @ Centro Calcolo INTRODUZIONE AI CLUSTER DI CALCOLO DEL DIPARTIMENTO DI MATEMATICA Centro di Calcolo Ottobre 2014 A cura di L. Ciambella, A. Gabrielli, A. Seghini {ciambella, gabrielli, seghini}@mat.uniroma1.it Laboratorio

Dettagli

Prodotto Matrice - Vettore in OpenMP

Prodotto Matrice - Vettore in OpenMP Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Elaborato di Calcolo Parallelo Prodotto Matrice - Vettore in OpenMP Anno Accademico 2011/2012 Professoressa Alessandra D Alessio Studenti

Dettagli

Tutorial. Cluster Linux 15-09-2003 Ultimo aggiornamento Ottobre 2004

Tutorial. Cluster Linux 15-09-2003 Ultimo aggiornamento Ottobre 2004 Documento tratto dal CD multimediale disponibile presso la biblioteca del Dipartimento di Matematica Tutorial Cluster Linux 15-09-2003 Ultimo aggiornamento Ottobre 2004 Istruzioni base CLUSTER LINUX ULISSE

Dettagli

ENEA GRID. CRESCO: Corso di introduzione. Autore: Alessandro Secco alessandro.secco@nice-italy.com

ENEA GRID. CRESCO: Corso di introduzione. Autore: Alessandro Secco alessandro.secco@nice-italy.com ENEA GRID CRESCO: Corso di introduzione Autore: Alessandro Secco alessandro.secco@nice-italy.com 1 Lezione 1 Introduzione Architettura Connessione Lancio di job Riferimenti 2 Introduzione 3 Introduzione

Dettagli

Introduzione all ambiente di sviluppo

Introduzione all ambiente di sviluppo Laboratorio II Raffaella Brighi, a.a. 2005/06 Corso di Laboratorio II. A.A. 2006-07 CdL Operatore Informatico Giuridico. Introduzione all ambiente di sviluppo Raffaella Brighi, a.a. 2005/06 Corso di Laboratorio

Dettagli

Architettura CUDA Corso di sviluppo Nvidia CUDATM. Davide Barbieri

Architettura CUDA Corso di sviluppo Nvidia CUDATM. Davide Barbieri Architettura CUDA Corso di sviluppo Nvidia CUDATM Davide Barbieri Panoramica Lezione Modello Architetturale CUDA Modello di programmazione CUDA Hello World in CUDA Gestione degli errori Terminologia Host

Dettagli

Ottimizzazioni 1 Corso di sviluppo Nvidia CUDATM. Davide Barbieri

Ottimizzazioni 1 Corso di sviluppo Nvidia CUDATM. Davide Barbieri Ottimizzazioni 1 Corso di sviluppo Nvidia CUDATM Davide Barbieri Panoramica Lezione Principali versioni dell'hardware CUDA Tesla Fermi Accesso veloce alla memoria globale Accesso veloce alla memoria condivisa

Dettagli

Running batch jobs on supercomputers

Running batch jobs on supercomputers Running batch jobs on supercomputers Catello Di Martino Catello.dimartino@unina.it University of Naples Federico II, Dipartimento di Informatica e Sistemistica DIS Materiale a cura di Giulio Merolla (gmerolla@yahoo.it)

Dettagli

Introduzione ai sistemi operativi

Introduzione ai sistemi operativi Introduzione ai sistemi operativi Che cos è un S.O.? Shell Utente Utente 1 2 Utente N Window Compilatori Assembler Editor.. DB SOFTWARE APPLICATIVO System calls SISTEMA OPERATIVO HARDWARE Funzioni di un

Dettagli

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti GESTIONE DEI PROCESSI 4.1 Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in diversi S.O. 4.2 Concetto di

Dettagli

Università degli Studi di Napoli Federico II Corso di Laurea Magistrale in Informatica I Anno

Università degli Studi di Napoli Federico II Corso di Laurea Magistrale in Informatica I Anno Griglie computazionali Università degli Studi di Napoli Federico II Corso di Laurea Magistrale in Informatica I Anno LEZIONE N. 16 Resource Management Systems: PBS, MAUI Il Computing Element Griglie computazionali

Dettagli

Modalità di utilizzo dei server di calcolo del C.E.D. di Frascati

Modalità di utilizzo dei server di calcolo del C.E.D. di Frascati Modalità di utilizzo dei server di calcolo del C.E.D. di Frascati 1 Macchine per lavori interattivi e batch Nome macch. Arc. Sist. Oper. N cpu RAM Freq. sp3-1 Power III AIX 5.1.3 16 16 GB 375 MHz sp3-2

Dettagli

GESTIONE DEI PROCESSI

GESTIONE DEI PROCESSI Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto

Dettagli

How build a Fedora HPC cluster running OpenFoam in parallel, using Torque/PBS, OpenMPI, Host-based authentication and NFS

How build a Fedora HPC cluster running OpenFoam in parallel, using Torque/PBS, OpenMPI, Host-based authentication and NFS How build a Fedora HPC cluster running OpenFoam in parallel, using Torque/PBS, OpenMPI, Host-based authentication and NFS Pier Paolo Ciarravano 19/07/2010 Descrizione dell architettura Il cluster si compone

Dettagli

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2 Computazione multi-processo Avere più processi allo stesso momento implica/richiede Processi e Threads Pt. 2 Concorrenza ed efficienza Indipendenza e protezione dei dati ma deve prevedere/permettere anche:

Dettagli

Modello dei processi. Riedizione delle slide della Prof. Di Stefano

Modello dei processi. Riedizione delle slide della Prof. Di Stefano Modello dei processi Riedizione delle slide della Prof. Di Stefano 1 Processi Modello di Processi asincroni comunicanti Process Scheduling Operazioni sui Processi Cooperazione tra Processi Interprocess

Dettagli

Concetto di processo. Processi. Immagine in memoria di un processo. Stati di un processo. Un SO esegue una varietà di attività:

Concetto di processo. Processi. Immagine in memoria di un processo. Stati di un processo. Un SO esegue una varietà di attività: Impossibile visualizzare l'immagine. Processi Concetto di processo Un SO esegue una varietà di attività: Sistemi batch job Sistemi time-sharing programmi utenti o task Nel libro i termini job e processo

Dettagli

Guida introduttiva e regole per l uso del cluster Casper. Lo Staff di HPC@Polito - 31 luglio 2015

Guida introduttiva e regole per l uso del cluster Casper. Lo Staff di HPC@Polito - 31 luglio 2015 Guida introduttiva e regole per l uso del cluster Casper Lo Staff di HPC@Polito - 31 luglio 2015 Questa guida è rivolta a tutti gli utenti del cluster e si applica ai casi d uso più comuni. Qualora fossero

Dettagli

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi Evoluzione dei sistemi operativi (4) Sistemi multiprogrammati! più programmi sono caricati in contemporaneamente, e l elaborazione passa periodicamente dall uno all altro Evoluzione dei sistemi operativi

Dettagli

RTAI e scheduling. Andrea Sambi

RTAI e scheduling. Andrea Sambi RTAI e scheduling Andrea Sambi Scheduling Linux Due politiche di scheduling priority-driven possibili. FIFO priorità uguali Processo 1 iniziato Processo 1: iterazione 1 Processo 1: iterazione 2 Processo

Dettagli

Manuale utente del cluster Linux

Manuale utente del cluster Linux Manuale utente del cluster Linux Giancarlo Bartoli (giancarlo.bartoli@isti.cnr.it) Tiziano Fagni (tiziano.fagni@isti.cnr.it) 29 marzo 2004 In questo rapporto tecnico descriveremo come poter usare, in modo

Dettagli

Gestione dei processi. Marco Cesati. Schema della lezione. Blocco di controllo 2. Sezioni e segmenti. Gestione dei processi. Job.

Gestione dei processi. Marco Cesati. Schema della lezione. Blocco di controllo 2. Sezioni e segmenti. Gestione dei processi. Job. Di cosa parliamo in questa lezione? Lezione 4 Cosa è un processo e come viene gestito dal SO 1 e job 2 Il blocco di controllo Sistemi operativi 3 Struttura di un file eseguibile 4 La schedulazione dei

Dettagli

Processi e thread. Dipartimento di Informatica Università di Verona, Italy. Sommario

Processi e thread. Dipartimento di Informatica Università di Verona, Italy. Sommario Processi e thread Dipartimento di Informatica Università di Verona, Italy Sommario Concetto di processo Stati di un processo Operazioni e relazioni tra processi Concetto di thread Gestione dei processi

Dettagli

Griglie computazionali

Griglie computazionali Griglie computazionali Università degli Studi di Napoli Federico II Corso di Laurea Magistrale in Informatica I Anno LEZIONE N. 5 Caratterizzazione di un sistema di calcolo distribuito convenzionale High

Dettagli

Meccanismi di sincronizzazione: Semafori e Monitor

Meccanismi di sincronizzazione: Semafori e Monitor Meccanismi di sincronizzazione: Semafori e Monitor 1 Introduzione Nelle prossime lezioni vedremo alcuni meccanismi dei sistemi operativi e dei linguaggi di programmazione sviluppati per facilitare la scrittura

Dettagli

Capitolo 3 -- Silberschatz

Capitolo 3 -- Silberschatz Processi Capitolo 3 -- Silberschatz Concetto di processo Un SO esegue una varietà di attività: Sistemi batch job Sistemi time-sharing programmi utenti o task Nel libro i termini job e processo sono usati

Dettagli

Sistemi Operativi. Esercitazione 2 Compilazione, Makefile e Processi

Sistemi Operativi. Esercitazione 2 Compilazione, Makefile e Processi Sistemi Operativi Esercitazione 2 Compilazione, Makefile e Processi Percorso Compilazione programmi in c Makefiles Processi definizione gestione creazione Compilazione di programmi in C Compilazione e

Dettagli

Il Concetto di Processo

Il Concetto di Processo Processi e Thread Il Concetto di Processo Il processo è un programma in esecuzione. È l unità di esecuzione all interno del S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono

Dettagli

Scheduling. Tipi di processi. Classi di scheduling. P1 (CPU bound) P2 /I/O bound) Scheduling a lungo termine. A. Ferrari

Scheduling. Tipi di processi. Classi di scheduling. P1 (CPU bound) P2 /I/O bound) Scheduling a lungo termine. A. Ferrari Scheduling A. Ferrari Tipi di processi CPU Bound Processi che sfru;ano pesantemente le risorse computazionali del processore, ma non richiedono servizi di ingresso/uscita dab al sistema operabvo in quanbtà

Dettagli

Speedup. Si definisce anche lo Speedup relativo in cui, invece di usare T 1 si usa T p (1).

Speedup. Si definisce anche lo Speedup relativo in cui, invece di usare T 1 si usa T p (1). Speedup Vediamo come e' possibile caratterizzare e studiare le performance di un algoritmo parallelo: S n = T 1 T p n Dove T 1 e' il tempo impegato dal miglior algoritmo seriale conosciuto, mentre T p

Dettagli

Openmosix e Beowulf: introduzione e confronto

Openmosix e Beowulf: introduzione e confronto Openmosix e Beowulf: introduzione e confronto Giovanni Perbellini Cluster Introduzione Cluster ESD Openmosix Comandi principali Beowulf (PVM) Comandi principali Libreria PVM API Agenda 1 Introduzione -

Dettagli

Architetture. Paride Dagna. SuperComputing Applications and Innovation Department 18/02/2013

Architetture. Paride Dagna. SuperComputing Applications and Innovation Department 18/02/2013 Architetture Paride Dagna SuperComputing Applications and Innovation Department 18/02/2013 Introduzione Grazie alle moderne tecniche di programmazione e agli strumenti di sviluppo attualmente disponibili,

Dettagli

Introduzione. Meccanismi di sincronizzazione: Semafori e Monitor. Semafori - Definizione. Semafori - Descrizione informale

Introduzione. Meccanismi di sincronizzazione: Semafori e Monitor. Semafori - Definizione. Semafori - Descrizione informale Introduzione Meccanismi di sincronizzazione: Nelle prossime lezioni vedremo alcuni meccanismi dei sistemi operativi e dei linguaggi di programmazione sviluppati per facilitare la scrittura di programmi

Dettagli

Posix Threads: l evoluzione dei processi UNIX

Posix Threads: l evoluzione dei processi UNIX Posix Threads: l evoluzione dei processi UNIX Raffaele Quitadamo, PhD in Computer Science Università di Modena e Reggio Emilia quitadamo.raffaele@unimore.it Sommario Pthreads vs Unix processes L API per

Dettagli

Cosa si intende per GPGPU? Il modello di programmazione di CUDA. GPU di precedente generazione. Storia delle GPU

Cosa si intende per GPGPU? Il modello di programmazione di CUDA. GPU di precedente generazione. Storia delle GPU Cosa si intende per GPGPU? Il modello di programmazione di CUDA Calcolo General Purpose su GPU (Graphic Processing Unit) in applicazioni differenti dalla grafica 3D tradizionale Le GPU sono usate come

Dettagli

Componenti di Sistemi Operativi. System Call Programmi di sistema Componenti di un SO Servizi di SO

Componenti di Sistemi Operativi. System Call Programmi di sistema Componenti di un SO Servizi di SO Componenti di so 1 Componenti di Sistemi Operativi System Call Programmi di sistema Componenti di un SO Servizi di SO 2 System Call Le system call forniscono l'interfaccia tra running program e SO Generalmente

Dettagli

Prestazioni computazionali di OpenFOAM sul. sistema HPC CRESCO di ENEA GRID

Prestazioni computazionali di OpenFOAM sul. sistema HPC CRESCO di ENEA GRID Prestazioni computazionali di OpenFOAM sul sistema HPC CRESCO di ENEA GRID NOTA TECNICA ENEA GRID/CRESCO: NEPTUNIUS PROJECT 201001 NOME FILE: NEPTUNIUS201001.doc DATA: 03/08/10 STATO: Versione rivista

Dettagli

I multi processori. Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it. Università degli Studi di Milano

I multi processori. Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it. Università degli Studi di Milano I multi processori Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano Patterson, sezione 1.5, 1.6, 2.17, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6,

Dettagli

Schedulazione in RTAI

Schedulazione in RTAI Schedulazione in RTAI RTAI: modulo kernel rt_hello_km.c #include #include Thread real-time... Ciclo infinito RT_TASK task; Periodico... void task_routine() { while(1) { /* Codice

Dettagli

Introduzione ecos. Agenda. Giovanni Perbellini

Introduzione ecos. Agenda. Giovanni Perbellini Introduzione ecos Giovanni Perbellini Agenda Introduzione ecos Toolchain Download codice sorgente Binutils GCC/G++ Newlib GDB/Insight Compilazione toolchain Selezione Target Compilazione ecos Configtool

Dettagli

Supporto al Sistema Operativo

Supporto al Sistema Operativo Supporto al Sistema Operativo Middleware di supporto al sistema operativo in sistemi distribuiti Funzione del nucleo Modelli architetturali di SO Decomposizione delle funzionalità Processi, thread, processi

Dettagli

Add workstations to domain. Adjust memory quotas for a process. Bypass traverse checking. Change the system time. Create a token object

Add workstations to domain. Adjust memory quotas for a process. Bypass traverse checking. Change the system time. Create a token object SeTcb Act as part of the operating system Consente ad un processo di assumere l identità di un qualsiasi utente ottenere così l accesso alle risorse per cui è autorizzato tale utente SeMachineAccount SeIncreaseQuota

Dettagli

ENEA GRID. Corso di introduzione all'uso ed all'amministrazione. Autore: Alessandro Secco alessandro.secco@nice-italy.com

ENEA GRID. Corso di introduzione all'uso ed all'amministrazione. Autore: Alessandro Secco alessandro.secco@nice-italy.com ENEA GRID Corso di introduzione all'uso ed all'amministrazione Autore: Alessandro Secco alessandro.secco@nice-italy.com 1 Lezione 4 Riepilogo lezione 3 LSF: Job environment LSF: Lancio di un job multi-caso

Dettagli

Multithreading in Java. Fondamenti di Sistemi Informativi 2014-2015

Multithreading in Java. Fondamenti di Sistemi Informativi 2014-2015 Multithreading in Java Fondamenti di Sistemi Informativi 2014-2015 Multithreading La programmazione concorrente consente di eseguire più processi o thread nello stesso momento. Nel secondo caso si parla

Dettagli

Lezione 5. Processi e thread. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata

Lezione 5. Processi e thread. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata Lezione 5 Sistemi operativi 24 marzo 2015 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 15 5.1 Di cosa parliamo in questa lezione? Relazione tra processi e thread, e relative

Dettagli

Lezione 6. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.

Lezione 6. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata. Lezione 6 Sistemi operativi 31 marzo 2015 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 15 6.1 Di cosa parliamo in questa lezione? La schedulazione 1 e caratteristiche

Dettagli

Parallelizzazione Laplace 2D: MPI e MPI+OMP. - Cineca - SuperComputing Applications and Innovation Department

Parallelizzazione Laplace 2D: MPI e MPI+OMP. - Cineca - SuperComputing Applications and Innovation Department Parallelizzazione Laplace 2D: MPI e MPI+OMP - Cineca - SuperComputing Applications and Innovation Department Outline Parallelizzazione Laplace 2D Parallelizzazione Laplace 2D - MPI bloccante Parallelizzazione

Dettagli

Trasparenze del Corso di Sistemi Operativi

Trasparenze del Corso di Sistemi Operativi Università di Udine Facoltà di Scienze MM.FF.NN. Laurea in Informatica A.A. 2005/06 Struttura dei Sistemi Operativi Trasparenze del Corso di Sistemi Operativi Marina Lenisa Università di Udine Componenti

Dettagli

Architettura di un sistema operativo

Architettura di un sistema operativo Architettura di un sistema operativo Struttura di un S.O. Sistemi monolitici Sistemi a struttura semplice Sistemi a livelli Virtual Machine Sistemi basati su kernel Sistemi con microkernel Sistemi con

Dettagli

Implementazione di linguaggi 2. CUDA, query su GPU. Dott Stefano Ghio. Dott Michele Bozzano. michele.bozzano@gmail.com. otacorp@gmail.

Implementazione di linguaggi 2. CUDA, query su GPU. Dott Stefano Ghio. Dott Michele Bozzano. michele.bozzano@gmail.com. otacorp@gmail. Implementazione di linguaggi 2 CUDA, query su GPU Dott Michele Bozzano michele.bozzano@gmail.com Dott Stefano Ghio otacorp@gmail.com GPGPU General purpose processing on the GPU Come dice il nome (Graphics

Dettagli

SISTEMI OPERATIVI THREAD. Giorgio Giacinto 2013. Sistemi Opera=vi

SISTEMI OPERATIVI THREAD. Giorgio Giacinto 2013. Sistemi Opera=vi SISTEMI OPERATIVI THREAD 2 Mo*vazioni» Un programma complesso può eseguire in modo concorrente più funzioni agraverso la creazione e ges=one di processi figli agraverso il meccanismo dei thread» La creazione

Dettagli

Trasparenze del Corso di Sistemi Operativi

Trasparenze del Corso di Sistemi Operativi Università di Udine Facoltà di Scienze MM.FF.NN. Laurea in Informatica A.A. 2009/10 Trasparenze del Corso di Sistemi Operativi Marina Lenisa Università di Udine Copyright c 2000-04 Marino Miculan (miculan@dimi.uniud.it)

Dettagli

Lo scheduler di UNIX (1)

Lo scheduler di UNIX (1) Lo scheduler di UNIX (1) Lo scheduling a basso livello è basato su una coda a più livelli di priorità 1 Lo scheduler di UNIX (2) Si esegue il primo processo della prima coda non vuota per massimo 1 quanto

Dettagli

IL MULTIPROCESSING. Tendenza attuale: distribuire il calcolo tra più processori.

IL MULTIPROCESSING. Tendenza attuale: distribuire il calcolo tra più processori. IL MULTIPROCESSING Il problema: necessità di aumento della potenza di calcolo. La velocità di propagazione del segnale (20 cm/ns) impone limiti strutturali all incremento della velocità dei processori

Dettagli

La torta caprese. Ingredienti. Istruzioni: 5 uova 8 cucchiai di zucchero 1/8kg di burro ¼kg di mandorle dolci 100gr di cioccolato fondente

La torta caprese. Ingredienti. Istruzioni: 5 uova 8 cucchiai di zucchero 1/8kg di burro ¼kg di mandorle dolci 100gr di cioccolato fondente I Thread Introduzione Parallelismo e concorrenza Thread a livello utente e nucleo I modelli multithread Aspetti sui thread Pthreads Solaris2 Threads Windows 2000 Threads Linux Threads Java Threads La torta

Dettagli

Real-time EDF scheduling per il kernel FreeBSD: analisi, implementazione e risultati sperimentali

Real-time EDF scheduling per il kernel FreeBSD: analisi, implementazione e risultati sperimentali Real-time EDF scheduling per il kernel FreeBSD: analisi, implementazione e risultati sperimentali Marco Trentini m.trentini@campus.unimib.it Relatore: Dott. Sergio Ruocco Correlatore: Prof. Francesco Tisato

Dettagli

Processi. Laboratorio Software 2008-2009 C. Brandolese

Processi. Laboratorio Software 2008-2009 C. Brandolese Processi Laboratorio Software 2008-2009 Introduzione I calcolatori svolgono operazioni simultaneamente Esempio Compilazione di un programma Invio di un file ad una stampante Visualizzazione di una pagina

Dettagli

Scheduling della CPU Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica

Scheduling della CPU Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica Scheduling della CPU Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica prof. Ing. Corrado Santoro A.A. 2010-11 Architettura di un sistema operativo Progr 1 Progr 2 Progr

Dettagli

La gestione dei processi in Minix

La gestione dei processi in Minix La gestione dei processi in Minix Sistemi Operativi Lez. 28 Scheduling Round robin su 16 code di priorità Quando un processo viene bloccato senza aver esaurito il suo quanto di tempo, una volta risvegliato,

Dettagli

Massimo Bernaschi Istituto Applicazioni del Calcolo Consiglio Nazionale delle Ricerche

Massimo Bernaschi Istituto Applicazioni del Calcolo Consiglio Nazionale delle Ricerche Massimo Bernaschi Istituto Applicazioni del Calcolo Consiglio Nazionale delle Ricerche m.bernaschi@iac.cnr.it L'evoluzione del calcolo ad alte prestazioni dal punto di vista dell'utente e dello sviluppatore

Dettagli

Grid Tutorial Day Palermo, 13 Aprile 2011 Job Description Language Gestione job utente

Grid Tutorial Day Palermo, 13 Aprile 2011 Job Description Language Gestione job utente Grid Tutorial Day Palermo, 13 Aprile 2011 Marco Cipolla Job Description Language Gestione job utente Jobs e Applicazioni Utente I job permettono l esecuzione di programmi utente sulla GRID Per sottomettere

Dettagli

Corso di Sistemi Operativi I. a.a. 2006/07

Corso di Sistemi Operativi I. a.a. 2006/07 Corso di Sistemi Operativi I a.a. 2006/07 Copyright c 2000-03 Marino Miculan (miculan@dimi.uniud.it) 2003-06 Giorgio Delzanno (giorgio@disi.unige.it) La copia letterale e la distribuzione di questa presentazione

Dettagli

Introduzione. Corso di Sistemi Operativi I. a.a. 2006/07. Airline reservation. Banking system. Web browser. Application programs. Command interpreter

Introduzione. Corso di Sistemi Operativi I. a.a. 2006/07. Airline reservation. Banking system. Web browser. Application programs. Command interpreter Introduzione Corso di Sistemi Operativi I a.a. 2006/07 Cosa è un sistema operativo? Evoluzione dei sistemi operativi Tipi di sistemi operativi Concetti fondamentali Chiamate di sistema Copyright c 2000-03

Dettagli

Corso di Laurea in Ingegneria Informatica. Laboratorio di Sistemi Operativi. II anno, III periodo 2 crediti 13 ore di lezione 16 ore di esercitazione

Corso di Laurea in Ingegneria Informatica. Laboratorio di Sistemi Operativi. II anno, III periodo 2 crediti 13 ore di lezione 16 ore di esercitazione Corso di Laurea in Ingegneria Informatica Laboratorio di Sistemi Operativi II anno, III periodo 2 crediti 13 ore di lezione 16 ore di esercitazione INFORMAZIONI UTILI Docente: Gianluigi Folino tel. : 0984/831731

Dettagli

Introduzione al GPU Compu4ng con CUDA. Francesco Caruso francesco.caruso@polimi.it

Introduzione al GPU Compu4ng con CUDA. Francesco Caruso francesco.caruso@polimi.it Introduzione al GPU Compu4ng con CUDA Francesco Caruso francesco.caruso@polimi.it Contenu4 Come tu>o ebbe inizio: Evoluzione dell HW e del SW per la grafica GPU Compu4ng Introduzione a CUDA 5/13/11 Francesco

Dettagli

Il supporto al Sistema Operativo

Il supporto al Sistema Operativo Il supporto al Sistema Operativo Obiettivi e funzioni del S.O. Il Sistema Operativo è il software che controlla l esecuzione dei programmi e amministra le risorse del sistema. Ha due obiettivi principali:

Dettagli

SISTEMI OPERATIVI. I processi. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

SISTEMI OPERATIVI. I processi. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II) SISTEMI OPERATIVI (MODULO DI INFORMATICA II) I processi Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) Università degli Studi di Bergamo a.a. 2012-13 Sommario Il concetto di processo

Dettagli

Introduzione alla GPGPU Corso di sviluppo Nvidia CUDATM. Davide Barbieri

Introduzione alla GPGPU Corso di sviluppo Nvidia CUDATM. Davide Barbieri Introduzione alla GPGPU Corso di sviluppo Nvidia CUDATM Davide Barbieri Contatti skype: davbar86 mail: davide.barbieri@ghostshark.it Panoramica corso Introduzione al mondo delle GPU Modello GPGPU Nvidia

Dettagli

Sommario. Introduzione al problema Infrastruttura realizzata Procedure di ottimizzazione Validazione Conclusioni

Sommario. Introduzione al problema Infrastruttura realizzata Procedure di ottimizzazione Validazione Conclusioni Sommario Introduzione al problema Infrastruttura realizzata Procedure di ottimizzazione Validazione Conclusioni 2 Il cluster INFN Perugia Oltre 250 cpu e 40TB di spazio dati 9 gruppi, 100 utenti locali

Dettagli

Sistemi Operativi. Rappresentazione e gestione delle attività e della computazione: processi e thread

Sistemi Operativi. Rappresentazione e gestione delle attività e della computazione: processi e thread Modulo di Sistemi Operativi per il corso di Master RISS: Ricerca e Innovazione nelle Scienze della Salute Unisa, 17-26 Luglio 2012 Sistemi Operativi Rappresentazione e gestione delle attività e della computazione:

Dettagli

Thread. Thread. Creazione di nuovi processi. Applicazioni reali. La creazione di un nuovo processo costa I tempi di context switch sono elevati

Thread. Thread. Creazione di nuovi processi. Applicazioni reali. La creazione di un nuovo processo costa I tempi di context switch sono elevati Thread Thread Motivazioni Modelli Multithread Pthread, Threads in Win32, Thread in Java Problematiche relative ai Thread Thread Windows XP Thread Linux Applicazioni reali Creazione di nuovi processi Browser

Dettagli

Processi UNIX. I Processi nel SO UNIX. Gerarchie di processi UNIX. Modello di processo in UNIX

Processi UNIX. I Processi nel SO UNIX. Gerarchie di processi UNIX. Modello di processo in UNIX Processi UNIX I Processi nel SO UNIX UNIX è un sistema operativo multiprogrammato a divisione di tempo: unità di computazione è il processo Caratteristiche del processo UNIX: processo pesante con codice

Dettagli

Metodologie di progettazione

Metodologie di progettazione Metodologie di progettazione 1 Metodologie di progettazione Una procedura per progettare un sistema Il flusso di progettazione può essere parzialmente o totalmente automatizzato. Un insieme di tool possono

Dettagli

Java. Traditional portability (ideal)

Java. Traditional portability (ideal) 1 Java JAVA: una introduzione 2 Traditional portability (ideal) C-code (Linux) (Pentium) Executable (Linux) Executable (Win32) Linux Windows 32 (Mac) Executable (Mac) Mac 1 1 3 Portability of Java programs

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 5 Martedì 21-10-2014 Thread Come abbiamo detto, un processo è composto

Dettagli

Rendere il Software green con la virtualizzazione applicativa Antonella Bertoletti

Rendere il Software green con la virtualizzazione applicativa Antonella Bertoletti Rendere il Software green con la virtualizzazione applicativa Antonella ertoletti Un mondo più green Significa anche: Ottimizzare l utilizzo della propria infrastruttura IT onsolidando i server sotto utilizzati

Dettagli

Realizzazione di un cluster Condor su macchine virtuali

Realizzazione di un cluster Condor su macchine virtuali Realizzazione di un cluster Condor su macchine virtuali Davide Petturiti Sistemi Operativi Avanzati Prof. Osvaldo Gervasi A.A. 2007/2008 Corso di Laurea Specialistica in Informatica Facoltà di Scienze

Dettagli

Overview. Linux Security Modules (LSM) I moduli del kernel. Linux e i moduli. Vantaggi e svantaggi. La nascita di LSM

Overview. Linux Security Modules (LSM) I moduli del kernel. Linux e i moduli. Vantaggi e svantaggi. La nascita di LSM Linux Security Modules (LSM) A cura di Scola Mariano I moduli del kernel Tutti i moderni sistemi operativi supportano i cosiddetti moduli del kernel caricabili dinamicamente (LKM) Si tratta di porzione

Dettagli

Direzione Sistemi Informativi SPECIFICA TECNICA. Progetto di consolidamento dei sistemi per la gestione dei Data Base del GSE.

Direzione Sistemi Informativi SPECIFICA TECNICA. Progetto di consolidamento dei sistemi per la gestione dei Data Base del GSE. Direzione Sistemi Informativi SPECIFICA TECNICA Progetto di consolidamento dei sistemi per la gestione dei Data Base del GSE Pagina 1 di 10 INDICE 1. CARATTERISTICHE DEL SISTEMA INFORMATICO DEL GSE...3

Dettagli

Velocizzare l'esecuzione di Joomla! con Zend Server Community Edition

Velocizzare l'esecuzione di Joomla! con Zend Server Community Edition Velocizzare l'esecuzione di Joomla! con Zend Server Community Edition Enrico Zimuel Senior Consultant & Architect Zend Technologies enrico@zend.com Sommario Zend Server Community Edition (CE) Perchè eseguire

Dettagli

Il Progetto di Centro di Reprocessing di BaBar: Monitoring e Simulazione

Il Progetto di Centro di Reprocessing di BaBar: Monitoring e Simulazione Il Progetto di Centro di Reprocessing di BaBar: Monitoring e Simulazione Moreno Marzolla Email marzolla@pd.infn.it WWW: http://www.pd.infn.it/~marzolla INFN Padova BaBar Collaboration & Dip. Informatica,

Dettagli

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?

Dettagli

Progettare, installare e configurare MySQL Cluster

Progettare, installare e configurare MySQL Cluster Progettare, installare e configurare MySQL Cluster Mirko Conte, System Architect MySQL Tech Tour Rome, 29 aprile 2015 direzione e sede legale via campanini 6 20124 milano tel: +39 02/66.732.1 fax: +39

Dettagli

PARTE II PROGRAMMAZIONE PARALLELA

PARTE II PROGRAMMAZIONE PARALLELA PARTE II PROGRAMMAZIONE PARALLELA Metodologie di Esplicitazione del Metodologie di Esplicitazione del Implicito Funzionale (Control Parallelism ) Basato sui dati (Data Parallelism ) Ogni metodologia di

Dettagli

Channel Bonding per il Cluster Arcosu

Channel Bonding per il Cluster Arcosu Channel Bonding per il Cluster Arcosu Carlo Podda, CRS4 CRS4 Centro di Ricerca, Sviluppo e Studi Superiori in Sardegna Polaris, Edificio 1 Loc. Pixina Manna 09010 Pula (Cagliari), Italy E-mail: carlo@crs4.it

Dettagli

Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia

Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Scheduling della CPU: 1. Tipi di scheduling 2. Metriche 3. Algoritmi

Dettagli

Java Virtual Machine

Java Virtual Machine Java Virtual Machine programmi sorgente: files.java compilatore files.class bytecode linker/loader bytecode bytecode Java API files.class interprete macchina ospite Indipendenza di java dalla macchina

Dettagli

Davide Cesari Massimo Bider Paolo Patruno. Emilia Romagna

Davide Cesari Massimo Bider Paolo Patruno. Emilia Romagna 1 IMPLEMENTAZIONE OPERATIVA DI UN MODELLO DI PREVISIONI METEOROLOGICHE SU UN SISTEMA DI CALCOLO PARALLELO LINUX/GNU Davide Cesari Massimo Bider Paolo Patruno Emilia Romagna LM-COSMO-LAMI 2 Il modello LM

Dettagli

Ottimizzazione dei Sistemi di Test Automatico: Multithreading in NI TestStand

Ottimizzazione dei Sistemi di Test Automatico: Multithreading in NI TestStand Multithreading in NI TestStand - 2 Ottimizzazione dei Sistemi di Test Automatico: Multithreading in NI TestStand Ing. Luigi Magni Responsabile Sviluppo ATS Pragma Engineering Srl (Perugia Italy) Multithreading

Dettagli

Capitolo 5: Scheduling della CPU! Scheduling della CPU! Concetti di Base! Alternanza di Sequenze di CPU- e I/O-Burst!

Capitolo 5: Scheduling della CPU! Scheduling della CPU! Concetti di Base! Alternanza di Sequenze di CPU- e I/O-Burst! Capitolo 5: Scheduling della CPU Criteri di Scheduling Algoritmi di Scheduling Cenni Scheduling per sistemi multprocessore Modelli Asimmetrico e Simmetrico Scheduling della CPU 5.2 Concetti di Base Alternanza

Dettagli

VR Engine Software. (Dassault. Quest 3D (Act 3D) VirTools. Systems) Realtà Virtuale: il presente, il passato, Interazione

VR Engine Software. (Dassault. Quest 3D (Act 3D) VirTools. Systems) Realtà Virtuale: il presente, il passato, Interazione Complessità di un sistema VR Network Manager (~ 10 Hz) Simulazione (Fisica, ) AMBIENTE VIRTUALE (~ 200 Hz) Main Application CANALE Visual Rendering VISIVO (~ 60 Hz) CANALE Audio Rendering ACUSTICO (~ 60

Dettagli

Ottimizzare Drupal su IIS 7.5

Ottimizzare Drupal su IIS 7.5 Alessandro Pilotti MVP ASP.Net / IIS Microsoft Certified Professional & Trainer MCSD, MCAD, MCSE, MCDBA, MCTS, MCT RHCE - Red Hat Certified Engineer http://blogs.ugidotnet.org/soaringcode Ottimizzare Drupal

Dettagli

La genealogia di Windows. Windows NT e Windows 95/98. Dimensioni del codice. Parte IX. Windows

La genealogia di Windows. Windows NT e Windows 95/98. Dimensioni del codice. Parte IX. Windows La genealogia di Windows Parte IX Windows Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 1 DOS: sistema operativo monoutente Windows 3.1 interfaccia a finestre che gira su DOS Windows 95/98

Dettagli

Parte IX. Windows. Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 1

Parte IX. Windows. Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 1 Parte IX Windows Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 IX - 1 La genealogia di Windows DOS: sistema operativo monoutente Windows 3.1 interfaccia a finestre che gira su DOS Windows 95/98

Dettagli

Sistemi Operativi (modulo di Informatica II) I processi

Sistemi Operativi (modulo di Informatica II) I processi Sistemi Operativi (modulo di Informatica II) I processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario Il concetto di processo Schedulazione dei processi e cambio di contesto

Dettagli