erlug
[Top] [All Lists]

Re: [Erlug] Benchmarks

To: erlug@xxxxxxxxxxxxxx
Subject: Re: [Erlug] Benchmarks
From: Davide Bolcioni <db_erlug@xxxxxxxx>
Date: Sun, 06 Mar 2005 17:55:42 +0100
Andrea Paolini ha scritto:

Sull'argomento ti do' qualche spunto di riflessione (e nessuna dimostrazione).

Aggiungo qualche spunto anche io, visto che è domenica.

2) Microsoft qualche anno fa mostrò[2] che su un quadriprocessore con qualche giga di RAM e 4 schede di rete Win2K e IIS serviva pagine molto più velocemente di Linux con Apache. Gli zeloti buttarono le braghe in aria, ma sbagliavano; MS aveva ragione. So what ? Cosa è cambiato nel mono dell'informatica da allora ?

Sia Linux che Apache hanno preso provvedimenti per rettificare le cose,
come mi pare sia già stato segnalato: trovo la cosa positiva.

4) Da almeno un decennio il collo di bottiglia in un sistema è l'accesso alla memoria al disco. Inoltre in quasi tutti i processi la parte di codice che usa il 90%[3] del tempo di CPU è il 10% del totale del codice del processo; e bene e spesso sta tutto nella cache della CPU. Per far andare più veloce il sistema su cosa operiamo ? Sul sottosistema che _comunque_ va incredibilmente più veloce degli altri ? E come ci operiamo ? Cambiando qualche istruzione con un altra hardware-specific che usa qualche ciclo di clock in meno ? Facendo un paragone fantasioso è come cavare le copertine dai sedili per alleggerire l'auto e farla andare più forte. Dal punto di vista teorico non fa una piega... ma nella vita reale ?

L'osservazione è del tutto valida in generale, ma le operazioni di
codifica e decodifica chiavi sono una delle poche circostanze in cui
le ottimizzazioni del compilatore possono fare una certa differenza (anche se nel caso di OpenVPN mi aspetto che il collo di bottiglia sia la rete).

D'altro canto faccio osservare che di recente, sia pure in Fortran, Calboli ci ha mostrato come la scelta del compilatore sia stata *critica* e aggiungo che gcc ha tanti meriti, ma non ha affatto la palma del compilatore che produce il codice eseguibile più ottimizzato. Una distribuzione come gentoo, che va a "scuotere l'alberino delle noci" come si dice a Bologna, in realtà offre un servizio importante: mette in luce un problema. Se ho un programma il cui binario distribuito da Debian funziona ma che compilato sotto gentoo con ottimizzazione spinta va in core dump, chi lo ha compilato sotto gentoo non ha il programma che magari gli serviva ma tutti gli altri sanno che o c'è un difetto nel sorgente del programma o c'è un difetto nel compilatore, e hanno un test case per approfondire le circostanze del problema e *correggerlo*.

La mia personale posizione, quindi, è che chi fa uso di Gentoo svolge un servizio importante per tutti, così come chi usa Debian o Fedora o Suse e quando incontra un problema si prende il tempo di investigarlo entro i limiti delle proprie capacità e disponibilità per poi segnalarlo e facilitarne la risoluzione svolge un servizio diverso, diciamo più a valle, ma altrettanto importante.

Ne segue, a mio modesto parere, che l'uso di Gentoo andrebbe incoraggiato e non stigmatizzato, a patto che siano chiari a priori i pro e i contro di tale scelta. Ad esempio, di primo acchito, verrebbe da dire Debian sui server e Gentoo sulla propria postazione. Faccio notare che, per varie circostanze, non uso Gentoo (in passato ci ho fatto un giro, poi l'hardware mi serviva per una cosa diversa).

9) Non è il tuo caso (stai lavorando ad un progetto universitario) ma in un azienda, coi soldi che ti costa un sistemista che sta una settimana a pistolare con le ottimizzazioni del compilatore ci compri un server.

Questo, se vogliamo, è l'esatto opposto di quanto ho esposto sopra: in azienda è sacrosanto, ma al di fuori una scelta del genere non mi pare avvantaggi chi la compie aumentandone le competenze e non mi pare constribuisca a migliorare il software libero.

Davide Bolcioni
--
Paranoia is a survival asset.


<Prev in Thread] Current Thread [Next in Thread>