Gromacs
# Gromacs

GROMACS (GROningen MAchine for Chemical Simulations) è un software libero per la bioinformatica, specializzato nelle simulazioni dinamiche di proteine, lipidi e acidi nucleici. Sviluppato inizialmente dall'Università di Groninga, il progetto è supportato da altre università e anche dalla comunità europea attraverso il programma Horizon 2020.

## Storia

Il progetto GROMACS è stato iniziato nel 1991 dal dipartimento di Chimica Biofisica dell'Università di Groninga con lo scopo di creare un software che funzionasse su sistemi paralleli dedicati, basati sull'architettura a bus. Il pacchetto fu derivato convertendo in linguaggio C++ un precedente pacchetto della stessa università (Gromos) scritto in linguaggio Fortran: questo diede maggior elasticità nella programmazione e una maggior semplicità nelle release successive. Attualmente il pacchetto è considerato uno dei più performanti (se non il più performante) software per le simulazioni dinamiche attraverso equazioni newtoniane.

Dalla versione 4.5 GROMACS supporta l'accelerazione gpu attraverso il linguaggio Cuda, mentre dalla versione 5.1 sono supportati anche i linguaggi OpenCl e OpenMM, aprendo la strada anche all'accelerazione su piattaforme FPGA. Sempre dalla versione 5.1 è supportata anche la piattaforma ARM. Tutte le versioni recenti, inoltre, supportano anche le estensioni Avx per l'accelerazione su cpu.

Attualmente il progetto è mantenuto dal Royal Institute of Technology di Uppsala e viene rilasciato sotto licenza open LGPL versione 2.1. Questa apertura del codice ha portato, nel tempo, al formarsi di una comunità di sviluppatori volontari che, coordinati dai ricercatori dell'Università, condividono idee e risoluzioni dei problemi per le release successive. A partire dal 2016 il codice è stato diviso in due: un ramo è quello di manutenzione/bugfix della vecchia versione e continua ad essere nominato come 5.x, l'altro (aggiornato periodicamente) introduce novità nel codice e viene nominato con l'anno e la release (es. 2018.1).

Il nome

Al Gennaio 2010, il codice sorgente del progetto contiene circa 400 diversi acronimi del nome stesso, dal momento che questo è diventato una specie di gioco tra i ricercatori e gli sviluppatori. Alcuni di questi sono "GROMACS Runs On Most of All Computer Systems" (GROMACS funziona su quasi tutti i sistemi), "GROMACS Runs One Microsecond At Cannonball Speeds" (GROMACS funziona in un microsecondo alla velocità di una cannonata), "GRoups of Organic Molecules in ACtion for Science" (Gruppi di molecole organiche in azione per la scienza).

## Applicazioni

Sotto licenza non-LGPL, GROMACS viene ampiamente usato nel progetto di calcolo distribuito Folding@Home, per la simulazione di ripiegamenti proteici.

GROMACS viene utilizzato anche dal progetto EvoGrids, che si occupa di simulare l'evoluzione di vita artificiale.

