--- layout: default --- # Definizioni Alcune definizioni ricorrenti nell'ambito del **calcolo distribuito**. job e task : Nell'informatica, un **job** è un'unità di lavoro o unità di esecuzione (che esegue detto **job**). Un componente di un **job** (come unità di lavoro) è chiamato **task** o **step** (se sequenziale). Come unità di esecuzione, un **job** può essere concretamente identificato con un singolo processo, che può a sua volta avere sottoprocessi (processi figli; il processo corrispondente al **job** essendo il processo genitore) che eseguono i compiti o i passaggi che compongono il lavoro del **job**; o con un gruppo di processi; o con un riferimento astratto a un processo o a un gruppo di processi. Gestore di code : Un *sotware* che si occupa di assegnare agli utenti un accesso esclusivo e/o non esclusivo alle risorse (nodi informatici) per un certo periodo di tempo in modo che possano eseguire i *job*. Fornisce una struttura per l'avvio, l'esecuzione e il monitoraggio dei *job*. Modulo : I `modulefile` sono file scritti in Tool Command Language, TCL, e sono interpretati dal programma `module` tramite l'interfaccia utente del modulo. I file dei moduli possono essere caricati (`load`), scaricati (`unload`) o commutati al volo (`switch`) mentre l'utente sta lavorando; e possono essere utilizzati per implementare le politiche del cluster relative all'accesso e all'utilizzo delle applicazioni. Scalabilità forte (strong scaling) : Il numero di processori aumenta mentre la dimensione del problema rimane costante. Ciò si traduce anche in un carico di lavoro ridotto per processore. Scalabilità debole (weak scaling) : In caso di scalabilità debole, aumentano sia il numero di processori che la dimensione del problema. Ciò si traduce anche in un carico di lavoro costante per processore.