Calcolatori multiprocessore
In un calcolatore comune, per esempio un iMac, incontriamo molte applicazioni che procedono contemporaneamente sulla forza di un solo processore. Cosa succede nei calcolatopri che di processori ne montano due o quattro?
In un calcolatore comune, per esempio un iMac, incontriamo molte applicazioni che procedono contemporaneamente sulla forza di un solo processore. Per esempio, noi potremmo avviare la copia di un mucchio di documenti e intanto che questa procede scrivere una lettera con SimpleText. In questo caso, il singolo processore divide il suo tempo tra tutte le applicazioni attive: ma poiché è così veloce noi non ce ne rendiamo conto e ci pare che esse avanzino contemporaneamente.
Le cose sono molto più complicate in un calcolatore con due (o più processori), come i più recenti G4 di Apple. Tanto per cominciare gli ingegneri che concepiscono un calcolatore del genere devono fare moltissimo lavoro di base, per evitare che i processori si pestino i piedi tra loro. Questa predisposizione è realizzata in hardware, dentro ai processori stessi e nella circuiteria di supporto. Per esempio, si impedisce che i due PowerPC cerchino contemporaneamente di modificare una stessa informazione in memoria.
È poi il sistema operativo a dover fare la sua parte. Alcuni sistemi operativi, come Windows 98, non sono affatto predisposti per girare su una macchina multiprocessore: in un caso del genere lasciano sempre completamente inutilizzati i processori oltre il primo.
Torniamo all’esempio iniziale. Se Mac OS 9 fosse un sistema operativo “multiprocessore simmetrico (in sigla “SMP”), in un Mac biprocessore la copia del Finder verrebbe portata avanti da uno dei PowerPC G4, mentre l’altro G4 si occuperebbe di SimpleText. Sarebbe il sistema operativo ad assegnare i processori alle applicazioni, nel modo migliore possibile. In effetti, le cose vanno proprio così in Mac OS X, la più recente versione del nostro sistema operativo, che è un sistema operativo SMP.
Immaginatevi adesso un Macintosh biprocessore in cui un’unica applicazione è aperta. Anche se il sistema operativo è di tipo SMP, solo un processore può lavorare, mentre l’altro resterà inattivo: il sistema operativo non troverebbe nulla da fargli fare. A meno che... a meno che sia il programmatore che ha scritto quella applicazione a progettarla in modo da trarre vantaggio dalla situazione. Immaginiamo che quell’unica applicazione aperta sia Photoshop. Immaginiamo anche che Photoshop debba virare una grandissima immagine, o comunque applicare un filtro. In questo caso, se il progettista del filtro è intelligente, capirà che un lavoro del genere può venire diviso equamente tra i due processori. Sarà questo programmatore, allora, a chiedere esplicitamente al sistema operativo di dividere il lavoro tra tutti i processori disponibili. Solo il programmatore della applicazione (o, in questo caso, del filtro) può farlo, perché solo il programmatore sa quali operazioni possono venire svolte in parallelo (essendo indipendenti).
Il sistema operativo Mac OS 9 non è un sistema SMP, ma è un sistema operativo “multiprocessore asimmetrico”: se e quando il programmatore di una applicazione chiede i servigi del secondo processore, il Mac OS è in grado di concederglieli. Vediamo quindi che, sotto OS 9, macchine come i G4 biprocessori sono utili solo quando noi usiamo applicazioni scritte esplicitamente per sfruttare questa caratteristica. Oggi come oggi, le applicazioni che sfruttano il secondo processore in modalità asimmetrica sotto Mac OS 9 sono Photoshop, Media 100, Cinema 4D XL, SoundJam MP, Media Cleaner Pro (e in generale qualsiasi applicazione che lavori intensamente in QuickTime). Se abbiamo dimenticato qualche prodotto invitiamo i lettori e i distributori a segnalarcelo. Comunque, in nessun altro programma noi vedremo il benché minimo beneficio dall’uso di un G4 multiprocessore.
Notate anche che un sistema operativo SMP gode anche di tutti i vantaggi di un sistema operativo asimmetrico: quindi una versione di Photoshop che giri da sola sotto Mac OS X su un Mac biprocessore sarà perlomeno veloce quanto lo è sotto Mac OS 9.
Il processore PowerPC G5, in fase di progetto mentre questo articolo viene scritto, pare conterrà l’equivalente di due processori G4. Per questo motivo è importante che tutti i programmatori di soluzioni Macintosh riprendano in mano il loro codice immediatamente e aggiungano quelle istruzioni che permettono al sistema operativo di dividere il carico di lavoro tra tutti i processori disponibili. Solo in questo modo potranno trarre massimo beneficio dalle nuove architetture Macintosh: in massimo grado quando il cento per cento degli utenti sarà passato a usare Mac OS X.
Originariamente pubblicato in data 07/08/2000