Somma di un array di N numeri in MPI
|
|
|
- Giuditta Mariangela Carletti
- 10 anni fa
- Просмотров:
Транскрипт
1 Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Elaborato di Calcolo Parallelo Somma di un array di N numeri in MPI Anno Accademico 2011/2012 Professoressa Alessandra D Alessio Studenti
2 Definizione del Problema Il punto di partenza del nostro elaborato è il calcolo della somma di N numeri eseguito su di un architettura parallela MIMD multi computer, in particolare ci avvarremo di quella a 64 CPU (16 x Intel Xeon E5410 [email protected] 64 bit) offerta dall Università degli Studi di Napoli Federico II attraverso l infrastruttura S.Co.P.E.. L obiettivo è la valutazione dell efficienza dell algoritmo da noi implementato, valutazione a cui giungeremo raccogliendo i risultati dei diversi test eseguiti (che si differenziano per il numero di elementi da sommare e/o per il numero di processori coinvolti ) in tre parametri fondamentali: tempo impiegato dall algoritmo parallelo con p processori T(p), speed-up S(p) ed efficienza E(p). 2
3 Descrizione dell algoritmo Nome capitolo Esistono tre differenti algoritmi paralleli per il calcolo della somma di N numeri, tutti applicabili non appena ciascun processore disponga della somma locale di una parte degli elementi totali, somma che sarà di sua esclusiva competenza. L eterogeneità tra i vari approcci si giustifica notando come ciascuno di essi rappresenti una diversa proposta di gestione degli scambi delle somma parziali, locali ad ogni processore. La strategia implementata dal nostro algoritmo è la seconda, anche se potenzialmente potrebbe degenerare nella prima, come sarà chiarito in seguito. Le somme parziali sono calcolate e accumulate nelle memorie dei processori coinvolti secondo la mappa descritta da un albero binario, la cui base avrà un numero di nodi pari al numero di processori (Figura 1). I nodi disposti nei livelli successivi costituiscono, quindi, ancora delle somme parziali ma del cui calcolo si fà carico uno solo dei due processori figli; ovviamente solo dopo aver ricevuto il risultato parziale dall altro. Per applicare questa strategia sarà necessario disporre di un numero di processori pari ad una potenza del 2. A differenza della prima, in cui il carico di lavoro è tutto sbilanciato su un solo processore che somma i risultati parziali ottenuti dalle altre macchine della rete, la seconda strategia prevede un numero di passi dimezzato e la possibilità, ad ogni passo, di lavorare in parallelo per coppie distinte di processori. Tuttavia il carico di gestione risulta parzialmente distribuito perché non tutti i processori proseguono le elaborazioni ad ogni passo temporale; di fatto al termine dell algoritmo esclusivamente il nodo accentratore 3
4 sarà possessore del risultato. Figura 1 Esempio II strategia con 4 processori Passiamo alla descrizione dell algoritmo sviluppato. Dopo aver definito le variabili, inizializziamo l ambiente di esecuzione MPI tramite la funzione di libreria MPI_Init, ad ogni processore assegniamo nella variabile numproc il numero di processori coinvolti sfruttando la funzione di libreria MPI_Comm_size; mentre con la MPI_Comm_rank il processore chiamante potrà memorizzare nella variabile id il proprio identificativo. La variabile in cui andremo a memorizzare la somma totale ( sommatotale ) è stata definita come un unsigned int per evitare la possibilità di determinare un overflow. Seguono dei controlli sugli input per verificare la correttezza del numero e del tipo di input passati. In particolare l esito del controllo sul numero dei processori determina la strategia che sarà utilizzata, in quanto nel caso in cui numproc non fosse una potenza del 2 si ricadrebbe nella I strategia. In seguito sono allocati dinamicamente ed inizializzati solo dal processore 0 i vettori SendCount e Displs, entrambi sono, però, definiti da ciascun processore pena il non funzionamento della MPI_Scatterv utilizzata in seguito. I due vettori considerati 4
5 sono atti a contenere rispettivamente il numero di elementi che ogni singolo processore dovrà sommare localmente nello step immediatamente precedente l applicazione della strategia e l offset che garantirà alla funzione MPI_Scatterv il posizionamento corretto, nel vettore contenente gli elementi da sommare, del punto a partire dal quale inviare gli elementi ad ogni singolo processore. L impiego della funzione calloc per l allocazione garantisce, al contrario della malloc, anche l inizializzazione degli stessi a zero; inoltre l allocazione è dinamica perché i parametri di input del main saranno noti a tempo di esecuzione, passati dal file PBS. Nelle memorie di tutti i processori sarà allocato dinamicamente un altro vettore ( somma ) la cui lunghezza è pari al numero di elementi che ogni processore riceverà in prima battuta. Nel codice successivo facciamo allocare dinamicamente al processore 0 il vettore degli elementi da sommare, in particolare si è scelto di porli tutti pari ad 1 per evitare overflow nel caso della somma di un numero elevato di elementi. Infine sfruttando la funzioni MPI_Scatterv il processore 0 può distribuire a ciascun processore del MPI_COMM_WORLD gli elementi da sommare localmente anche nel caso in cui il numero totale degli stessi non sia un multiplo del numero dei processori (in questo caso la differenza del numero di elementi da sommare per ogni singolo processore può essere al più pari ad 1 ). La funzione MPI_Barrier garantisce che il calcolo dei tempi ( ricavato dal processore 0 come differenza degli intervalli temporali tin e tfin restituiti dalla funzione di libreria MPI_Wtime ) avvenga solo dopo che tutti i processori abbiano ricevuto gli elementi di cui calcolare la somma. La seconda strategia è implementata nel caso in cui il numero di processori sia una potenza del due mediante la funzione MPI_Reduce, eseguita da ciascun processore dopo il calcolo della somma degli elementi ricevuti attraverso la MPI_Scatterv. Prima della MPI_Finalize abbiamo deallocato tutti i puntatori utilizzati con la funzione free. 5
6 Input, Output e situazioni d errore Descriviamo, ora, il modo di funzionamento dell algoritmo da noi implementato, andando a specificare gli input forniti, gli output ottenuti e le possibili situazioni d errore in cui è possibile incorrere. Parametri di Input I parametri forniti in ingresso al programma da noi sviluppato sono due: - n: lunghezza del vettore che contiene gli elementi di cui effettuare la somma. E un intero positivo. Se omesso è settato al valore di default, n=20. - p: numero di processori a cui sarà sottomessa l esecuzione dell algoritmo. Il sistema su cui andiamo a lavorare è dotato di 64 core, quindi p dovrà essere necessariamente inferiore a tale numero. Si noti che il vettore degli elementi è stato riempito, all interno del codice, da un valore numerico costante (1), in quanto lo scopo principale di questo lavoro è quello di mostrare l efficienza dell algoritmo di somma parallela. Parametri di Output Il programma da noi implementato fornisce come output, mostrati a video al termine 6
7 dell esecuzione, due parametri: - Il tempo impiegato per effettuare i calcoli, in maniera tale da poter fare delle valutazioni riguardanti l efficienza dell algoritmo. - La somma degli n elementi, calcolata in parallelo sul numero di processori indicati in input. I parametri di input vengono forniti al sistema mediante il file somma.pbs e, all interno dello stesso file, viene stabilito che il sistema genererà il file di output somma.out al termine dell esecuzione. Il file stabilisce anche la generazione di un file somma.err che conterrà gli eventuali errori restituiti dal sistema. Il formato PBS (Portable Batch System) permette di comandare l esecuzione di un insieme di jobs su un architettura parallela. Abbiamo scritto il file somma.pbs in maniera tale che esso fornisca in ingresso i parametri, evitando di dover modificare il file somma.c per ogni esecuzione. Riportiamo qui di seguito il contenuto del file somma.pbs : #!/bin/bash ########################## # # # The PBS directives # # # ########################## #PBS -q studenti #PBS -l nodes=2 #PBS -N somma #PBS -o somma.out 7
8 #PBS -e somma.err ########################################## # # # Output some useful job information. # # # ########################################## NCPU=`wc -l < $PBS_NODEFILE` echo echo ' This job is allocated on '${NCPU' cpu(s)' echo 'Job is running on node(s): ' cat $PBS_NODEFILE PBS_O_WORKDIR=$PBS_O_HOME/somma echo echo PBS: qsub is running on $PBS_O_HOST echo PBS: originating queue is $PBS_O_QUEUE echo PBS: executing queue is $PBS_QUEUE echo PBS: working directory is $PBS_O_WORKDIR echo PBS: execution mode is $PBS_ENVIRONMENT echo PBS: job identifier is $PBS_JOBID echo PBS: job name is $PBS_JOBNAME echo PBS: node file is $PBS_NODEFILE echo PBS: current home directory is $PBS_O_HOME echo PBS: PATH = $PBS_O_PATH echo echo "Eseguo: /usr/lib64/openmpi/1.4-gcc/bin/mpicc -o $PBS_O_WORKDIR/somma $PBS_O_WORKDIR/somma.c" 8
9 /usr/lib64/openmpi/1.4-gcc/bin/mpicc -o $PBS_O_WORKDIR/somma $PBS_O_WORKDIR/somma.c echo "Eseguo: /usr/lib64/openmpi/1.4-gcc/bin/mpiexec -machinefile $PBS_NODEFILE -np $NCPU $PBS_O_WORKDIR/somma" /usr/lib64/openmpi/1.4-gcc/bin/mpiexec -machinefile $PBS_NODEFILE -np $NCPU $PBS_O_WORKDIR/somma Il numero di processori viene fornito mediante la direttiva #PBS -l nodes=x, mentre il numero n di elementi del vettore viene sottomesso aggiungendolo in coda alla direttiva di esecuzione mpiexec. Situazioni d errore e avvertenze Elenchiamo qui di seguito le situazioni d errore che vengono restituite dal programma nel caso di un errato utilizzo dello stesso. Elencheremo, inoltre, le avvertenze che saranno mostrate a video nel caso di situazioni particolari; tali avvertenze non comportano una terminazione del programma. Per quanto riguarda le situazioni d errore: 1) Errore dovuto all inserimento di un numero più di un argomento. L unico, eventuale, argomento da fornire in input è n, il numero di elementi dell array di cui effettuare la somma. ERRORE! Sono stati inseriti troppi argomenti! Sintassi corretta: Somma n_processori [dim_array] Il parametro [dim_array] e' opzionale ed e' settato a 20 di default. 9
10 2) Errore dovuto all inserimento di un valore negativo come dimensione dell array ERRORE! La dimensione dell'array non può essere negativa! Il programma terminerà. 3) Errore dovuto all inserimento di un valore non intero come dimensione dell array ERRORE! La dimensione dell'array deve essere un intero! Il programma terminerà. 4) Errore dovuto alla richiesta di esecuzione su un numero di core superiore a 64, ovvero il numero di core di cui dispone il sistema su cui il programma è stato testato. ERRORE! Il sistema dispone di 64 core. Non è possibile richiederne un numero superiore. Il programma terminerà. Per quanto riguarda le avvertenze: - La funzione scelta per la soluzione del problema della somma parallela è la funzione MPI_Reduce(). Tale funzione, a seconda del numero di processori sulla quale è richiamata, andrà ad implementare una strategia piuttosto che un altra. In particolare, se il numero di processori è una potenza del due, la funzione svolgerà al suo interno i passi necessari alla realizzazione della II strategia. Se invece il numero di processori non rispetta questa condizione, essa implementerà la I strategia. Essendo il programma nato per il testing del funzionamento della II strategia, abbiamo ritenuto opportuno segnalare all utente tale situazione. Ad ogni modo, dato che il programma funziona ugualmente e restituisce un risultato corretto, non abbiamo ritenuto necessaria la terminazione dello stesso. Per questo motivo abbiamo deciso di ricorrere alla stampa a video del seguente messaggio: 10
11 WARNING! Il numero di processori non e' una potenza del due! Verrà utilizzata la strategia I! 11
12 Analisi del software Adesso concentreremo l attenzione sulle tabelle e i grafici relativi al calcolo del tempo di esecuzione T(p), dello speed-up S(p) e dell efficienza E(p). Tempo di esecuzione T(p) Nella tabella che segue sono riportati i valori del tempo di esecuzione registrato al variare del numero di processori P e del numero di elementi da sommare N. Quindi muovendoci lungo la colonna possiamo capire se c è un vantaggio o meno legato all aumento del numero di processori coinvolti. Tutti i valori del T(p) sono espressi in microsecondi, mentre ciascuno dei valori in tabella è stato ottenuto eseguendo la media sui campioni ottenuti eseguendo una decina di prove; un analogo discorso si estende anche ai valori posizionati nelle tabella del S(p) e dell E(p). N p 1 9, , , , , , , , , , , , , , , , , , , , , , , , ,41579 Tabella 1 Tempo di esecuzione T(p) 12
13 Figura 2 T(p) al variare del numero di processori e del numero di elementi da sommare Guardando la Figura 2 e la Tabella 1 possiamo notare che per N fissato non è sempre conveniente l utilizzo di un architettura parallela. In particolare per N=1.000 i tempi di esecuzione quasi raddoppiano passando da un incremento all altro del numero di processori, il caso più drastico, ma ciò accomuna tutti gli N è quello di p=16. Per quanto concerne N=10000 è quasi indifferente l impiego di più processori, mentre iniziamo a scoprirne i vantaggi a partire da N= e ad avere dei tempi particolarmente soddisfacenti per N= Negli ultimi tre casi citati minori tempi si registrano con p=8. Invertendo il punto di vista e quindi ponendoci con la prospettiva del N variabile con p fissato, i tempi, com è ragionevole che sia, aumentano ma nel caso p=16 si attestano su valori insolitamente vicini considerate le differenze tra gli ordini di grandezza degli N considerati. 13
14 Speed-up S(p) Nella tabella che segue sono riportati i valori dello speed-up, ricordiamo che esso misura la riduzione del tempo di esecuzione rispetto all algoritmo su 1 processore. Il valore è stato ottenuto a partire dal T(p) medio calcolato a partire da una decina di campioni. N p 2 0,4794 1,2625 1,892 1,7215 1, ,3297 1,1526 3,2407 3,3914 3, ,2038 0,8385 4,0776 6,3765 6, , , ,0087 0,0921 0,7369 Tabella 2 Valori dello Speed-up S(p) al variare di N e di P Figura 3 Speed up S(p) al variare di N e di p 14
15 Il punto di riferimento per giudicare lo speed-up delle nostre esecuzioni è la linea tratteggiata, che rappresenta il valore ideale. Per N=1.000 e N= siamo ancora lontani dall approssimarci al miglior caso possibile, come accade invece per gli altri tre valori della N. Anche con questo grafico abbiamo la conferma che p=16 non porti nessun miglioramento, mentre valori nei dintorni di quelli ideali sono stati registrati per p=2 con N= e N= , per p=4 con N= ; con p=8 a partire da N= traiamo dei benefici dall impiego dell architettura parallela, ma non al punto da essere ottimi come nei due casi su menzionati. Efficienza E(p) Nella tabella che segue sono riportati i valori dell efficienza, indicativa di quanto l algoritmo sfrutti il parallelismo del calcolatore. N p 2 0,2397 0, ,946 0, , , , , , , , , ,5097 0, , ,18E-05 5,74E-05 0, , , Tabella 3 Valori dell Efficienza E(p) al variare di N e p Il valore di riferimento di E(p) è rappresentato nella Figura 4, in rapporto allo stesso scopriamo che i nostri test forniscono un risultato interessante per N= e N= con p=2 e con p=4, mentre sugli stessi processori per N= si ottengono valori quasi ideali. In tutti gli altri casi all aumentare di p l efficienza degrada, raggiungendo il suo minimo nel caso p=16; ciò in piena aderenza con le osservazioni suggeriteci dai grafici di T(p) ed S(p). 15
16 Figura 4 Efficienza E(p) al variare di N e di p 16
17 Esempi d uso e codice In questo capitolo verranno illustrati degli esempi d uso dell algoritmo. Mostreremo in che modo verrà richiamato il programma e come esso verrà mostrato a video. Inoltre, mostreremo qui il codice del programma da noi sviluppato, il quale sarà correlato da una documentazione interna che ne spiegherà il funzionamento. Esempi d uso Mostriamo un esempio del risultato che si ottiene a video andando a eseguire il programma fornendo come input un numero di elementi n= 20 e richiedendo che l algoritmo venga eseguito su p=4 processori. Come illustrato nel capitolo dedicato a Input, Output e Situazioni d Errore, tali input saranno forniti al sistema mediante il file somma.pbs. 17
18 Figura 5 Esempio esecuzione con N=20 Si nota che vengono mostrate a video le informazioni sugli input forniti, n e p, il tempo totale impiegato per il calcolo della somma e, infine, il risultato dell elaborazione. Il risultato visibile, somma=20, è corretto in quanto è stato scelto di riempire il vettore con una costante unitaria; tale scelta è stata operata in quanto il nostro obiettivo era quello di ottenere informazioni significative riguardo i tempi di esecuzione, essendo già stata provata la correttezza dell algoritmo sviluppato. Codice del programma Riportiamo qui di seguito il codice da noi scritto per la realizzazione di questo programma. Abbiamo utilizzato il linguaggio di programmazione C. Il codice è stato corredato di una documentazione interna che spiega le varie istruzioni utilizzate. 18
19 /*Algoritmo per il calcolo della somma di n numeri. Autori: Giuffrida Serena M63/239 Lampognana Francesca M63/144 Mele Gianluca M63/145 */ #include <stdio.h> #include <mpi.h> #include "malloc.h" #define ROOT 0 int main(int argc, char **argv) { /***Definizione delle variabili***/ int id, numproc; int dim,dimarray=20; // questo è il valore di default del numero di elementi da sommare unsigned int sommatotale; // unsigned in quanto la somma è un valore positivo in quanto sommiamo tra di loro valori positivi; così facendo sarà possibile sommare un numero maggiore di elementi prima di andare in overflow unsigned int temp=0; int i; double tin,tfin,tempotot; float warning; int* SendCount=0; // Tali puntatori vengono utilizzati ed allocate solo dal int* Displs=0; // processore 0 ma devono essere visti da tutti per le varie int* Vettore=0; // funzioni offerte da MPI /****Inizializzazione***/ MPI_Init(&argc, &argv); /***Numero processori***/ MPI_Comm_size(MPI_COMM_WORLD, &numproc); /***Individuazione ranks***/ MPI_Comm_rank(MPI_COMM_WORLD, &id); // Controlli sugli input if(argc==2) //nel caso in cui sia stato specificato nel file pbs il numero di elementi da sommare dimarray=atoi(argv[1]); else if(argc>2){ //controllo su eventuale inserimento di un numero eccessivo di argomenti if(!id){ printf("errore! Sono stati inseriti troppi argomenti!\n"); printf("\nsintassi corretta:\n"); printf("somma n_processori [dim_array]\n\n"); printf("il parametro [dim_array] e' opzionale ed e' settato a 20 di default.\n"); MPI_Finalize(); return -1; 19
20 //Avvertenza riguardante il numero di processori warning=log(numproc)/log(2); //se il numero di processi specificati non è una potenza del 2 sarà calcolata warning=warning-(int)warning; //la somma con la prima strategia if(warning!=0) if(!id) printf("warning! Il numero di processori non e' una potenza del due!\nverra' utilizzata la strategia I!\n"); //Controllo sull'eventuale inserimento di una dimensione negativa dell'array if(dimarray<0){ if(!id){ printf("errore! La dimensione dell'array non può essere negativa!\n"); printf("il programma terminerà.\n"); MPI_Finalize(); return -1; //Controllo sull'eventuale richiesta di esecuzione su un numero eccessivo di processori if(numproc>64){ if(!id){ printf("errore! Il sistema dispone di 64 core. Non è possibile richiederne un numero superiore.\n"); printf("il programma terminerà.\n"); MPI_Finalize(); return -1; //Controllo su inserimento di una dimensione dell'array non intera if((dimarray-(int)dimarray)!=0){ if(!id){ printf("errore! La dimensione dell'array deve essere un intero!\n"); printf("il programma terminerà.\n"); MPI_Finalize(); return -1; //Fine controlli sugli input if(!id){ //Istanzio dinamicamente i vettori necessari alla ScatterV SendCount=(int*)calloc(numproc,sizeof(int)); Displs=(int*)calloc(numproc,sizeof(int)); //Il processore 0 inizializza il vettore SendCount for(i=0;i<numproc;i++) SendCount[i]=(int)(dimarray/numproc); if(dimarray%numproc>0) //nel caso in cui il numero di elementi da sommare non è multiplo for(i=0;i<dimarray%numproc;i++) //o sottomultiplo del numero di processori SendCount[i]=SendCount[i]+1; //Il processore 0 inizializza il vettore Displs Displs[0]=0; for(i=1;i<numproc;i++) Displs[i]=Displs[i-1]+SendCount[i-1]; dim=(int)(dimarray/numproc); if(id<(dimarray%numproc)) //nel caso in cui il numero di elementi da sommare non è dim=dim+1; //multiplo o sottomultiplo del numero di processori 20
21 //Istanzio il vettore in cui l'id-esimo processore riceve i numeri che andrà a sommare int* somma=(int*)calloc(dim,sizeof(int)); //Il processore ROOT inizializza i valori del Vettore if(!id){ printf("numero di processori: %d.\n",numproc); printf("dimensione array: %d.\n",dimarray); //Istanzio il vettore che contiene gli elementi da sommare Vettore=(int*)calloc(dimarray,sizeof(int)); for(i=0;i<dimarray;i++) Vettore[i]=1; //Il vettore sarà riempito da una costante unitaria //CALCOLO SU PIU PROCESSORI //Mediante la funzione ScatterV, ad ogni processore vengono distribuiti gli elementi da sommare //Avendo usato tale funzione, il numero di elementi può variare da processore a processore MPI_Scatterv(Vettore,SendCount,Displs,MPI_INT,somma,dim,MPI_INT,ROOT,MPI_COMM_WORLD); MPI_Barrier(MPI_COMM_WORLD); //aspettiamo che tutti abbiano ricevuto gli elementi da sommare //Inizio valutazione dei tempi if(!id) tin=mpi_wtime(); //restituisce in tin il tempo a partire dall'istante immediantemente precedente //l'inizio del calcolo della somma //Ogni processore effettua il calcolo for(i=0;i<dim;i++) temp=temp+somma[i]; //La funzione Reduce effettua la riunione dei risultati calcolati da ogni processore, calcolando la somma totale. //Per farlo utilizzerà la strategia I o la II a seconda di quanti siano i processori richiesti. //Il risultato complessivo verrà passato al processore ROOT nella variabile sommatotale MPI_Reduce(&temp,&sommatotale,1,MPI_INT,MPI_SUM,ROOT,MPI_COMM_WORLD); MPI_Barrier(MPI_COMM_WORLD); //attendiamo che tutti i processori abbiano inviato le somme parziali if(!id){ tfin=mpi_wtime(); //restituisce in tfin il tempo a partire dall'istante immediantemente successivo // alla fine del calcolo della somma tempotot=1.e6*(tfin-tin); //il tempo impiegato viene calcolato come differenza di intervalli printf("tempo totale impiegato: %f.\n",tempotot); printf("algoritmo PARALLELO\n"); printf("somma su %d processori: %d.\n",numproc,sommatotale); //Deallocazione delle variabili dinamiche istanziate all'interno del programma. free(vettore); free(somma); free(sendcount); free(displs); MPI_Finalize(); return 0; 21
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
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
Funzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
INFORMATICA 1 L. Mezzalira
INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello
FONDAMENTI di INFORMATICA L. Mezzalira
FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software
Alcuni strumenti per lo sviluppo di software su architetture MIMD
Alcuni strumenti per lo sviluppo di software su architetture MIMD Calcolatori MIMD Architetture SM (Shared Memory) OpenMP Architetture DM (Distributed Memory) MPI 2 MPI : Message Passing Interface MPI
Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
Dall Algoritmo al Programma Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni IL PROGRAMMA Gli algoritmi sono modelli di descrizione astratti e per controllarne il funzionamento devono essere
Prodotto Matrice - Vettore in MPI
Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Elaborato di Calcolo Parallelo Prodotto Matrice - Vettore in MPI Anno Accademico 2011/2012 Professoressa Alessandra D Alessio Studenti Definizione
Invio SMS. DM Board ICS Invio SMS
Invio SMS In questo programma proveremo ad inviare un SMS ad ogni pressione di uno dei 2 tasti della DM Board ICS. Per prima cosa creiamo un nuovo progetto premendo sul pulsante (Create new project): dove
MPI è una libreria che comprende:
1 Le funzioni di MPI MPI è una libreria che comprende: Funzioni per definire l ambiente Funzioni per comunicazioni uno a uno Funzioni percomunicazioni collettive Funzioni peroperazioni collettive 2 1 3
4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0
Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice
Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori
Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine
Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};
ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca
Concetto di Funzione e Procedura METODI in Java
Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile
ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 9 Settembre 2015
COGNOME E NOME: MATRICOLA: Civile Ambiente e Territorio Non si possono consultare manuali, appunti e calcolatrici. Esercizio 1: Rappresentare i numeri 43 e 81 (in base 10) in notazione binaria in complemento
Sistema operativo: Gestione della memoria
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e
Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2.
Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Dichiarazione di dati: le direttive DS e DC...3 2.1 Direttiva DS...3 2.2
ELETTRONICA Tema di Sistemi elettronici automatici Soluzione
ELETTRONICA Tema di Sistemi elettronici automatici Soluzione La traccia presenta lo sviluppo di un progetto relativo al monitoraggio della temperatura durante un processo di produzione tipico nelle applicazione
Capitolo V : Il colore nelle immagini digitali
Capitolo V : Il colore nelle immagini digitali Lavorare con il colore nelle immagini digitali L uso dei colori nella visione computerizzata e nella computer grafica implica l incorrere in determinate problematiche
Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile
Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione
Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.
DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti
void funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }
FUNZIONI 57. Cosa servono le funzioni? A spezzare il programma in diverse parti relativamente indipendenti fra loro, ovvero interagenti sono attraverso i parametri di input ed IL VALORE di uscita. In questo
Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta
Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa Raccolta prove scritte Realizzare una classe thread Processo che deve effettuare un numero fissato di letture da una memoria
Fondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 5 di Giovedì 15 Luglio 2010 tempo a disposizione 2h30'
Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit5.zip contenente i file necessari (solution di VS2008 e progetto compresi). Avvertenze per la consegna: apporre all inizio di
Documentazione esterna al software matematico sviluppato con MatLab
Documentazione esterna al software matematico sviluppato con MatLab Algoritmi Metodo di Gauss-Seidel con sovrarilassamento Metodo delle Secanti Metodo di Newton Studente Amelio Francesco 556/00699 Anno
Testi di Esercizi e Quesiti 1
Architettura degli Elaboratori, 2009-2010 Testi di Esercizi e Quesiti 1 1. Una rete logica ha quattro variabili booleane di ingresso a 0, a 1, b 0, b 1 e due variabili booleane di uscita z 0, z 1. La specifica
Prova di Laboratorio di Programmazione
Prova di Laboratorio di Programmazione 6 febbraio 015 ATTENZIONE: Non è possibile usare le classi del package prog.io del libro di testo. Oltre ai metodi richiesti in ciascuna classe, è opportuno implementare
Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C
Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Elettrica, e Meccanica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011
Corso di Informatica
Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down
CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU
Lezione n.7 Il moltiplicatore binario e il ciclo di base di una CPU 1 SOMMARIO Architettura del moltiplicatore Architettura di base di una CPU Ciclo principale di base di una CPU Riprendiamo l analisi
IL SISTEMA INFORMATIVO
IL SISTEMA INFORMATIVO In un organizzazione l informazione è una risorsa importante al pari di altri tipi di risorse: umane, materiali, finanziarie, (con il termine organizzazione intendiamo un insieme
LINGUAGGI DI PROGRAMMAZIONE
LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di
A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.
Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio
Allocazione dinamica della memoria - riepilogo
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Storage duration Allocazione dinamica della
Funzioni. Il modello console. Interfaccia in modalità console
Funzioni Interfaccia con il sistema operativo Argomenti sulla linea di comando Parametri argc e argv Valore di ritorno del programma La funzione exit Esercizio Calcolatrice 2, presente in tutti i programmi
http://esamix.labx Quotazione compareto( ) Quotazione piurecente( ) Quotazione Quotazione Quotazione non trovato count( )
Materiale di ausilio utilizzabile durante l appello: tutto il materiale è a disposizione, inclusi libri, lucidi, appunti, esercizi svolti e siti Web ad accesso consentito in Lab06. L utilizzo di meorie
ESEMPIO 1: eseguire il complemento a 10 di 765
COMPLEMENTO A 10 DI UN NUMERO DECIMALE Sia dato un numero N 10 in base 10 di n cifre. Il complemento a 10 di tale numero (N ) si ottiene sottraendo il numero stesso a 10 n. ESEMPIO 1: eseguire il complemento
Alessandro Pellegrini
Esercitazione sulle Rappresentazioni Numeriche Esistono 1 tipi di persone al mondo: quelli che conoscono il codice binario e quelli che non lo conoscono Alessandro Pellegrini Cosa studiare prima Conversione
Algoritmi e strutture dati. Codici di Huffman
Algoritmi e strutture dati Codici di Huffman Memorizzazione dei dati Quando un file viene memorizzato, esso va memorizzato in qualche formato binario Modo più semplice: memorizzare il codice ASCII per
La selezione binaria
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione L esecuzione di tutte le istruzioni in sequenza può non è sufficiente per
Esercitazione Informatica I AA 2012-2013. Nicola Paoletti
Esercitazione Informatica I AA 2012-2013 Nicola Paoletti 4 Gigno 2013 2 Conversioni Effettuare le seguenti conversioni, tenendo conto del numero di bit con cui si rappresenta il numero da convertire/convertito.
PROGRAMMA SVOLTO DI INFORMATICA ANNO SCOLASTICO 2013/2014. DOCENTE: Villani Chiara
LICEO SCIENTIFICO STATALE "FILIPPO LUSSANA" V i a A n g e l o Ma j, 1 2 4 1 2 1 B E R G A M O 035 237502 Fax: 035 236331 Sito e contatti: www.liceolussana.com Codice fiscale: 80026450165 PROGRAMMA SVOLTO
I puntatori e l allocazione dinamica di memoria
I puntatori e l allocazione dinamica di memoria L allocazione delle variabili Allocazione e rilascio espliciti di memoria Le funzioni malloc e free 2 2006 Politecnico di Torino 1 Allocare = collocare in
Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)
Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi
Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno
Rappresentazione di numeri Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno Un numero e un entità teorica,
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 11 Martedì 12-11-2013 1 Tecniche di allocazione mediante free list Generalmente,
Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)
Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014) Il software per gli esami ICON può essere eseguito su qualunque computer dotato di Java Virtual Machine aggiornata.
Giornale di Cassa e regolarizzazione dei sospesi
Servizi di sviluppo e gestione del Sistema Informativo del Ministero dell Istruzione dell Università e della Ricerca Giornale di Cassa e regolarizzazione dei sospesi Guida Operativa Versione 1.0 del RTI
OSCILLOSCOPIO SOFTWARE
OSCILLOSCOPIO SOFTWARE Ghiro Andrea Franchino Gianluca Descrizione generale... 3 Interazioni tra processi e risorse... 4 Funzionalità di processi e risorse... 5 Interfaccia e comandi utente... 6 Funzioni
Inizializzazione, Assegnamento e Distruzione di Classi
Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della
3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
3 - Variabili Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di
Aritmetica dei Calcolatori 2
Laboratorio di Architettura 13 aprile 2012 1 Operazioni bit a bit 2 Rappresentazione binaria con segno 3 Esercitazione Operazioni logiche bit a bit AND OR XOR NOT IN OUT A B A AND B 0 0 0 0 1 0 1 0 0 1
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
Centro Servizi Territoriali (CST) Asmenet Calabria
Cofinanziamento Fondi CIPE Progetto CST CUP J59H05000040001 Centro Servizi Territoriali (CST) Asmenet Calabria Convenzione per la costituzione di un Centro Servizi Territoriale tra la Regione Calabria
INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI
INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.
Esempi di algoritmi. Lezione III
Esempi di algoritmi Lezione III Scopo della lezione Implementare da zero algoritmi di media complessità. Verificare la correttezza di un algoritmo eseguendolo a mano. Imparare a valutare le prestazioni
CAPITOLO 20 AGGIORNAMENTO DEL CODICE DI STOCCAGGIO
CAPITOLO 20 AGGIORNAMENTO DEL CODICE DI STOCCAGGIO 20.1 PREMESSA... 255 20.2 COMITATO DI CONSULTAZIONE... 255 20.3 SOGGETTI TITOLATI A PRESENTARE RICHIESTE DI MODIFICA... 255 20.4 REQUISITI DI RICEVIBILITA
Introduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?
1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi? 1. La nozione di multiprogrammazione prevede la possibilità di
MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena [email protected]
MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena [email protected] POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo
Appello di Informatica B
Politecnico di Milano Facoltà di Ingegneria Industriale 19 febbraio 2004 Appello di Informatica B Prof. Angelo Morzenti - Prof. Vincenzo Martena Cognome e nome: Matricola: Tipo di prova: recupero I prova
Raggruppamenti Conti Movimenti
ESERCITAZIONE PIANO DEI CONTI Vogliamo creare un programma che ci permetta di gestire, in un DB, il Piano dei conti di un azienda. Nel corso della gestione d esercizio, si potranno registrare gli articoli
MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico
MANUALE MOODLE STUDENTI Accesso al Materiale Didattico 1 INDICE 1. INTRODUZIONE ALLA PIATTAFORMA MOODLE... 3 1.1. Corso Moodle... 4 2. ACCESSO ALLA PIATTAFORMA... 7 2.1. Accesso diretto alla piattaforma...
Elementi di informatica
Elementi di informatica Sistemi di numerazione posizionali Rappresentazione dei numeri Rappresentazione dei numeri nei calcolatori rappresentazioni finalizzate ad algoritmi efficienti per le operazioni
Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati
Informatica 3 Informatica 3 LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Modulo 1: Perchè studiare algoritmi e strutture dati Modulo 2: Definizioni di base Lezione 10 - Modulo 1 Perchè
Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica
Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica Il presente esame scritto deve essere svolto in forma individuale in un tempo massimo di 60 minuti dalla sua
Registratori di Cassa
modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...
CAPITOLO 7 - SCAMBIO DI MESSAGGI
CAPITOLO 7 - SCAMBIO DI MESSAGGI Lo scambio di messaggi è una forma di comunicazione nel quale un processo richiede al sistema operativo di mandare dei dati direttamente ad un altro processo. In alcuni
System Center Virtual Machine Manager Library Management
System Center Virtual Machine Manager Library Management di Nicola Ferrini MCT MCSA MCSE MCTS MCITP Introduzione La Server Virtualization è la possibilità di consolidare diversi server fisici in un unico
I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.
UML e i Casi d USO I casi d uso specificano una sequenza di azioni che producono un risultato visibile agli attori del sistema. Essi nascono per fornire descrizioni delle capacità del sistema. I casi d
puntatori Lab. Calc. AA 2007/08 1
puntatori Lab. Calc. AA 2007/08 1 parametri delle funzioni (dalla lezione scorsa) gli argomenti in C vengono passati by value dalla funzione chiamante alla funzione chiamata la lista degli argomenti viene
Automazione Industriale (scheduling+mms) scheduling+mms. [email protected]
Automazione Industriale (scheduling+mms) scheduling+mms [email protected] Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione
SISTEMI DI NUMERAZIONE E CODICI
SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema
Informatica. Rappresentazione dei numeri Numerazione binaria
Informatica Rappresentazione dei numeri Numerazione binaria Sistemi di numerazione Non posizionali: numerazione romana Posizionali: viene associato un peso a ciascuna posizione all interno della rappresentazione
Gestione Risorse Umane Web
La gestione delle risorse umane Gestione Risorse Umane Web Generazione attestati di partecipazione ai corsi di formazione (Versione V03) Premessa... 2 Configurazione del sistema... 3 Estrattore dati...
FORMULE: Operatori matematici
Formule e funzioni FORMULE Le formule sono necessarie per eseguire calcoli utilizzando i valori presenti nelle celle di un foglio di lavoro. Una formula inizia col segno uguale (=). La formula deve essere
ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 27 Gennaio 2015
COGNOME E NOME: MATRICOLA: Civile Ambiente e Territorio Non si possono consultare manuali, appunti e calcolatrici. Esercizio 1: [3 punto] Rappresentare i numeri 36 e 91 (in base 10) in notazione binaria
RISOLUTORE AUTOMATICO PER SUDOKU
RISOLUTORE AUTOMATICO PER SUDOKU Progetto Prolog - Pierluigi Tresoldi 609618 INDICE 1.STORIA DEL SUDOKU 2.REGOLE DEL GIOCO 3.PROGRAMMAZIONE CON VINCOLI 4.COMANDI DEL PROGRAMMA 5.ESEMPI 1. STORIA DEL SUDOKU
ISTRUZIONI PER LA GESTIONE BUDGET
ISTRUZIONI PER LA GESTIONE BUDGET 1) OPERAZIONI PRELIMINARI PER LA GESTIONE BUDGET...1 2) INSERIMENTO E GESTIONE BUDGET PER LA PREVISIONE...4 3) STAMPA DIFFERENZE CAPITOLI/BUDGET.10 4) ANNULLAMENTO BUDGET
Aprire WEKA Explorer Caricare il file circletrain.arff Selezionare random split al 66% come modalità di test Selezionare J48 come classificatore e
Alberi di decisione Aprire WEKA Explorer Caricare il file circletrain.arff Selezionare random split al 66% come modalità di test Selezionare J48 come classificatore e lanciarlo con i parametri di default.
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record
AXO. Operativo. Architetture dei Calcolatori e Sistema. programmazione di sistema
AXO Architetture dei Calcolatori e Sistema Operativo programmazione di sistema Il sistema operativo Il Sistema Operativo è un insieme di programmi (moduli software) che svolgono funzioni di servizio nel
Tricks & Tips. [Access] Tutorial - ActiveX - Controllo Tree View. - Michele de Nittis - Versione: 1 Data Versione: venerdì 30 agosto 2002
Tricks & Tips [Access] - Michele de Nittis - Tutorial - ActiveX - Controllo Tree View Versione: 1 Data Versione: venerdì 30 agosto 2002 1 SOMMARIO PREMESSA...3 INSERIMENTO DEL CONTROLLO...3 AGGIUNTA DELLE
Logica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo
Logica Numerica Approfondimento E. Barbuto Minimo Comune Multiplo e Massimo Comun Divisore Il concetto di multiplo e di divisore Considerato un numero intero n, se esso viene moltiplicato per un numero
Documento di accompagnamento: mediane dei settori bibliometrici
Documento di accompagnamento: mediane dei settori bibliometrici 1. Introduzione Vengono oggi pubblicate sul sito dell ANVUR e del MIUR 3 tabelle, deliberate nel CD dell ANVUR del 13 agosto 2012, relative
Lezione 8. La macchina universale
Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione
E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools
Una breve introduzione operativa a STGraph Luca Mari, versione 5.3.11 STGraph è un sistema software per creare, modificare ed eseguire modelli di sistemi dinamici descritti secondo l approccio agli stati
1 ACCESSO AL NET@PORTAL... 3 2 CARICAMENTO DELLE RICHIESTE/PRESTAZIONI... 4 3 MONITORAGGIO DELLE RICHIESTE... 8 4 DOWNLOAD ESITI...
MANUALE UTENTE NET@PORTAL ADEGUAMENTO DEL. 185/08 Sommario 1 ACCESSO AL NET@PORTAL... 3 2 CARICAMENTO DELLE RICHIESTE/PRESTAZIONI... 4 2.1 CREAZIONE DEL FILE CSV PER IL CARICAMENTO MASSIVO DELLE RICHIESTE...
Codifica dei numeri negativi
E. Calabrese: Fondamenti di Informatica Rappresentazione numerica-1 Rappresentazione in complemento a 2 Codifica dei numeri negativi Per rappresentare numeri interi negativi si usa la cosiddetta rappresentazione
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,
Che differenza c è tra una richiesta XML ed una domanda XML? (pag. 4)
FAQ INVIO DOMANDE CIGO CON FLUSSO XML Cosa serve per inviare una domanda CIGO con il flusso XML? (pag. 2) Come si prepara una domanda in formato XML? (pag. 3) Che differenza c è tra una richiesta XML ed
Fondamenti di Informatica 2
Fondamenti di Informatica 2 della prova scritta del 28 Febbraio 2006 Esercizio 1 (4 punti) Date le seguenti variabili int A[] = 2,3,7,-2,5,8,-4; int N = 7; int min = 3; int i; Scrivere la porzione di codice
Oggetti Lezione 3. aspetti generali e definizione di classi I
Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione
Studente: SANTORO MC. Matricola : 528
CORSO di LAUREA in INFORMATICA Corso di CALCOLO NUMERICO a.a. 2004-05 Studente: SANTORO MC. Matricola : 528 PROGETTO PER L ESAME 1. Sviluppare una versione dell algoritmo di Gauss per sistemi con matrice
Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche
Software di sistema e software applicativo I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche Software soft ware soffice componente è la parte logica
