Monday Feb 25, 2008

Few months ago I noticed an interesting move in the niche realm of specialized programming environments: Peakstream (formerly at www.peakstreaminc.com) was being acquired by Google, see

Implications could be multifold, in the brave new world of multicore and heterogeneous processors when HPC-related techniques are becoming more and more relevant for new enterprise applications.

Peakstream "language" clearly has (had?) roots into the work of Pat Hanrahan's group at Stanford producing the Brook streaming language.

Similar to Peakstream programming model, RapidMind (www.rapidmind.net) offers a vector-oriented, data-parallel unified view targeting difficult beasts such as Cell BE, GPGPU and FP accelerators, as well as standard multicores. See Cure for the Multicore Blues, IEEE Spectrum (Jan 2007). Also in this case, this product is the results of an academic project by Michael McCool's group at the Canadian University of Waterloo producing Sh.

Among FP accelerator solutions, Clearspeed offers yet another very similar programming model. Their hardware is already double precision (while at present both Cell BE and GPUs are native single precision only) and much less power hungry, therefore more easily integrated in large cluster architectures, however peak performances are somewhat lagging behind.

Saturday Jun 09, 2007

Ia disponibilità pervasiva di processori multicore/multithread segna una nuova era nel calcolo parallelo. Per sfruttare pienamente le potenzialità dell'hardware occorre che il software si adegui.

Nell'ambito della linea Studio, Sun propone alcuni strumenti che aiutano gli sviluppatori nell'impresa:
Sun Studio Tools for Parallel Programming in Multi-Core Environments
http://developers.sun.com/sunstudio/cmt.html

Nel corso dei TechDays recenti (eventi destinati a sviluppatori appunto), un paio di presentazioni interessanti:

Tuesday May 22, 2007

Ia disponibilità pervasiva di processori multicore/multithread segna una nuova era nel calcolo parallelo.

Un articolo molto utile per distinguere fra le tecnologie disponibili:

  • Chip MultiProcessing (CMP);
  • Chip MultiThreading (CMT)
lo propone Erik Fischer, Distinguished Engineer di Sun Ungheria:
Chip Multithreading and Multiprocessing
developers.sun.com/sunstudio/articles/cmtmp.html

La virtualizzazione dell'infrastruttura x86/x64 è il tema caldo del momento. Sun Italia ha organizzato nelle ultime settimane un Roadshow proprio per sensibilizzare clienti e partner sulle nuove opportunità offerte dalle tecnologie disponibili.

I sistemi x86-64 progettati da Sun sono perfetti per implementare Data Center virtualizzati, grazie all'architettura scalabile AMD Opteron e alle caratteristiche costruttive state-of-the-art che permettono di consolidare decine di macchine virtuali senza problemi di RAM o di traffico I/O. A questo proposito sono usciti due documenti recenti sulle prestazioni benchmark VMmark del server Sun Fire X4600 M2 con VMware Infrastructure 3.

Consolidation through virtualization requires a combination of server and virtualization technology that delivers sufficient performance to make the move to a smaller number of servers worthwhile. Fortunately, the combination of the Sun Fire X4600 M2 server and VMware Virtual Infrastructure 3 software provides a powerful, scalable consolidation platform whose performance is proven by measurements using a beta version of the VMmark benchmark.

Le prove sono state effettuate da VeriTest/Lionbridge e riportate nel documento
http://www.lionbridge.com/competitive_analysis/reports/sun/sun_galaxy_4_performance_study.pdf

Friday Mar 16, 2007

Una verita' quasi ovvia legata al fatto che i multicore rendono il calcolo parallelo (in tutte le sue forme) una realta' per le masse.

Su questo punto consiglio di leggere una intervista molto interessante a due veri maestri, Hennessy & Patterson (Stanford & Berkeley):
http://www.acmqueue.com/modules.php?name=Content&pa=showpage&pid=445

Riguardo al necessario cambiamento dei paradigmi software, l'articolo piu' citato forse e' questo:
The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software
http://www.gotw.ca/publications/concurrency-ddj.htm

Persino Microsoft e' d'accordo:
Software and the Concurrency Revolution
http://acmqueue.com/modules.php?name=Content&pa=showpage&pid=332&page=1

Per approfondire veramente, esiste il rapporto corposo di Berkeley citato da Patterson:
The Landscape of Parallel Computing Research: A View from Berkeley
http://www.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-183.html
http://www.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-183.pdf

E inoltre si potra' seguire la presentazione dalla viva voce di Patterson:

The Stanford EE Computer Systems Colloquium (EE380) will be hosting a talk by Dave Patterson of UC Berkeley on January 31st. He is author or co-author of a number of books, including two of the primary texts on computer architecture, and will be presenting "The Berkeley View: A New Framework and a New Platform for Parallel Research." The EE380 presentations are always made available as streaming video, usually within a day of the presentation, and can be accessed through http://ee380.stanford.edu.

To view the talk, go to http://ee380.stanford.edu/ and click on the video camera icon for that presentation. You may have to register your e-mail address to get in. Previous talks from the current academic year can be accessed through links on the left, and talks from previous years can be accessed through the "Past Colloquia" link on the left.

============= From Dave Patterson's abstract: ===============
To rapidly evaluate all the possible alternatives in parallel architectures and programming systems, we need a flexible, scalable, and economical platform that is fast enough to run extensive applications and operating systems.
Today, one to two dozen processor cores can be programmed into a single FPGA. With multiple FPGAs on a board and multiple boards in a system, 1000 processor architectures can be explored. Such a system will not just invigorate multiprocessors research in the architecture community, but since processors cores can run at 100 to 200 MHz, a large scale multiprocessor would be fast enough to run operating systems and large programs at speeds sufficient to support software research. Hence, we believe such a system will accelerate research across all the fields that touch multiple processors: operating systems, compilers, debuggers, programming languages, scientific libraries, and so on. Thus the acronym RAMP, for Research Accelerator for Multiple Processors.
A group of 10 investigators from 6 universities (Berkeley, CMU, MIT, Stanford Texas Washington) have volunteered to create th RAMP "gateware" (logic to go into the FPGAs) and have the boards fabricated and available at cost . It will run industrial standard instruction sets (Power, SPARC, ...) and operating systems (Linux, Solaris, ...) We hope to have a system that can scale to 1000 processors in late 2007 that costs universities about $100 per processor. I'll report on our results for the initial RAMP implementations at the meeting.Those interested learning more should take a look at: http://ramp.eecs.berkeley.edu/.
==================================================

As a prep for Dave Patterson's talk, it might be useful to watch the presentation by Ian Buck in the 2006-2007 Fall Quarter schedule, titled "Computing on the GPU GE Force 88000 and NVIDIA CUDA." They are doing some pretty amazing things with this card and a new NVIDIA C-compiler that simplifies writing general processing programs for this GPU.

Quest'ultimo punto in relazione a quanto si puo' fare con gli acceleratori (siano essi GPU come NVIDIA o ATI/AMD utilizzati in modalità GPGPU, Cell di IBM/Sony o Clearspeed).

Monday Sep 11, 2006

Il 24 Agosto e' uscita ufficialmente la nuova suite SPEC CPU 2006, vedi
http://www.spec.org/cpu2006/press/release.html

Come al solito ci sono le versioni int e fp, normale e rate. Da notare che la versione int e' ora davvero tale (quindi va bene per i Niagara!).

Curiosa la conferma della tradizionale reference platform Sun SPARC (a cui si assegna il valore 1.0):
Sun Ultra Enterprise 2 server using a 296MHz UltraSPARC-II processors with 2 GB of main memory and two 36GB SCSI disks.

I primi risultati postati sono alla URL:
http://www.spec.org/cpu2006/results/cpu2006.html

Wednesday Aug 02, 2006

Un nuovo sistema, un nuovo concetto: è stato finalmente annunciato il Sun Fire X4500 Data Server, già noto in codice come "Thumper".

Fino a 24 TB di dati si trovano strettamente connessi a 4 core computazionali x86-64. E' quindi possibile concepire delle applicazioni che elaborino in modo efficiente tali dati senza ricorrere a networking "esterno" (Gigabit Ethernet, Fibre Channel ecc.), con il vantaggio di utilizzare l'interconnessione SMP di sistema che garantisce prestazioni in latenza e banda passante superiori di almeno un ordine di grandezza. L'interconnessione SMP dell'architettura AMD Opteron, basata sul protocollo HyperTransport (HT), viaggia infatti a 8 GB/s punto-punto. Inoltre i 48 dischi SATA-II sono serviti da ben 6 controller, a loro volta connessi a 3 bridge HT - PCI-X, sfruttando in tal modo pienamente le capacità di connessione dei processori AMD Opteron serie 2xx, dotati di 3 canali HT.

E' chiaro che l'utilizzo di dischi a basso costo e l'assenza di controller RAID rende comunque i Thumper degli oggetti adeguati a storage temporaneo per rendere possibile elaborazioni a valore aggiunto, tenendo presente che complementano perfettamente altre classi di storage dedicate all'alta affidabilità del singolo dato, o per l'archiviazione a lungo termine.

Alcune classi di applicazioni possibili per i Thumper:

Al momento il Sun Fire X4500 è supportato ufficialmente solo con Solaris 10, benchè si tratti di un sistema x86/x64 a tutti gli effetti, per cui gira tranquillamente le varie distribuzioni Linux. Fatto è che Sun sfrutta al meglio l'hardware a basso costo e l'assenza di qualsiasi controller RAID utilizzando il nuovo file system (in realtà anche un volume manager integrato) zfs, in particolare con la funzionalità RAID-Z.

I dischi SATA II sono estraibili dall'alto, in modalità hot-plug. Il modello di manutenzione è descritto da Jonathan Schwartz:
And btw, given the volume of comments related to "how do I replace a dead drive" in Thumper - the answer is you don't, you let Solaris and ZFS simply remove it from use (while maintaining provable data integrity), and leave it for an annual maintenance call to clean out failed drives and drop in fresh ones (known in the business as "failing in place").

Tuesday Aug 01, 2006

Two standard PCIe adapters for the new Sun Blade 8000 system adopting the PCI-SIG endorsed Express Module hot-pluggable form factor:

With such IO modules, blades can finally have flexible, hot-plug IO, especially important in enterprise datacenter environments.

Thursday Mar 23, 2006

The new servers from Sun based on UltraSPARC® T1 processor with CoolThreadsTM technology, aka "Niagara" servers, provide optimised performances for modern Datacenter workloads keeping full compatibility with SPARC/Solaris environment. These systems have been designed with the Throughput Computing approach, which is able to bypass the difficulties met by traditional processors with high clock frequencies and high complexity. This is a real quantum leap in microprocessor technology, since a single UltraSPARC® T1 processor consolidates a SMP multiprocessor server, supporting concurrently up to 32 "strands" (hardware threads). That is why this architecture is called CMT - Chip MultiThreading. The benefits of this technology within the Datacenter translate into large savings in space, power consumption and cost of ownership compared to traditional solutions for Web and Application Tiers.

The most direct link to information about the new processor and the new CoolThreads systems is
www.sun.com/coolthreads
From this Web page a number of links point to a range of detailed information.

The architecture of UltraSPARC® T1 processor and Sun Fire T1000 and T2000 servers is described in the white paper
Sun Fire T1000 and T2000 Server Architecture - Unleashing the UltraSPARC T1 Processor with CoolThreads Technology
www.sun.com/servers/coolthreads/coolthreads_architecture_wp.pdf
Detailed documentation about the Sun Fire T2000 server is available at the URL
www.sun.com/products-n-solutions/hardware/docs/Servers/coolthreads/t2000/index.html

Some of the first reactions from technical analysts such as IDC and Forrester are linked at the URL
www.sun.com/servers/coolthreads/idc_whitepaper.pdf
www.sun.com/servers/coolthreads/forrester_whitepaper.pdf

Performance benchmarks of the new systems, also in relationship with their power dissipation, are found at the URL
www.sun.com/servers/coolthreads/t1000/benchmarks.jsp
Thanks to their exceptional energy efficiency, the new servers can lead to significant savings, which can be estimated with the help of the Java application available at the URL
www.sun.com/servers/coolthreads/simdatacenter/index.jsp

The systems built around the UltraSPARC® T1 processor are designed to scale and perform efficiently on throughput-oriented applications, particularly for Web and network services, application servers, Java applications, even for relatively small Databases and ERP applications. More specifically, the applications suitable for CMT architecture are the following:

  • Multi-threaded apps, characterised by a small number of processes with a large number of threads.
  • Multi-process apps, characterised by a large number of processes.
  • Java apps, which use the multithreaded nature of JVM, including major application servers (Sun Java Application Server, BEA Weblogic, IBM Websphere, Tomcat).
  • Multi-instance apps, such that it is possible to run more instances of the same app concurrently on the same server, in most cases this can be done with the help of Solaris Containers which provide a logical isolation.
On the other hand, single-thread apps with strong constraints in terms of response time and apps with a significant presence (> 3%) of floating-point operations are not suitable for the current implementation of CMT architecture in the UltraSPARC T1 processor.

A special area where Niagara systems are exceptionally suitable is the one of cryptographic applications, such as in the SSL implementation. This is due to hardware acceleration of modular arithmetic implemented in the processor core pipeline, and as a matter of fact such computations are heavily used by crypto algorithms. Solaris 10 provides a framework (SCF - Solaris Cryptographic Framework) which interfaces the special crypto capabilities of the hardware with the userland applications, as described by the Blueprint
Using the Cryptographic Accelerator of the UltraSPARC T1 Processor
www.sun.com/blueprints/0306/819-5782.html

A good introductory document about the appropriate techniques to measure correctly the performances of applications on Niagara servers and to optimise them in several situations is the Blueprint
Developing and Tuning Applications on UltraSPARC T1 Chip Multithreading Systems
www.sun.com/blueprints/1205/819-5144.html
In particular, CMT architecture needs to reconsider the meaning of things like utilization rate or "idle" processor, as explained in detail in the blog entry
blogs.sun.com/travi?entry=ultrasparc_t1_utilization_explained

Other Blueprints give guidelines about the implementation of many Web servers onto T1000
Web Consolidation on the Sun Fire T1000 using Solaris Containers
www.sun.com/blueprints/1205/819-5149.html
and about the implementation of an entire e-commerce application
Consolidating the Sun Store onto Sun Fire T2000 Servers
www.sun.com/blueprints/1205/819-5148.html

Useful tips for developers of throughput-oriented applications, ready to scale at their best on Niagara systems, are found in the white paper
Developing Scalable Applications for Throughput Computing
www.sun.com/servers/coolthreads/coolthreads_whitepaper.pdf
and on the article
Improving Application Efficiency Through Chip Multi-Threading
http://developers.sun.com/solaris/articles/chip_multi_thread.html.

The detailed technical specs of the UltraSPARC® T1 processor have been released openly (OpenSPARC) and available at the URL http://opensparc.sunsource.net/nonav/opensparct1.html
while the reference technical article is the following:
P. Kongetira, K. Aingaran, K. Olukotun,
"Niagara: A 32-Way Multithreaded Sparc Processor", IEEE Micro 25, n.2 (March/April 2005), pp. 21-29
DOI bookmark: http://doi.ieeecomputersociety.org/10.1109/MM.2005.35

Finally, a nice link to unofficial technical information is Rich McDougall's blog
blogs.sun.com/rmc?entry=welcome_to_the_cmt_era

Last update 2006-03-22 v4en cmn

Monday Mar 20, 2006

I nuovi server Sun basati sul processore UltraSPARC® T1 con tecnologia CoolThreadsTM, detti anche "Niagara", permettono di ottimizzare le prestazioni sui carichi di lavoro del moderno Datacenter mantenendo la piena compatibilità SPARC/Solaris. Tali sistemi implementano pienamente l'approccio della progettazione di sistemi orientati al Throughput Computing, in grado di superare le difficoltà incontrate dai processori tradizionali ad elevate frequenze di clock ed elevata complessità. Si tratta di una vera e propria svolta tecnologica, in quanto un solo processore UltraSPARC® T1 aggrega in un solo chip le funzionalità di un server multiprocessore SMP a 8 core, supportando contemporaneamente ben 32 "strand" (thread hardware); si parla perciò di architettura CMT - Chip MultiThreading. I vantaggi di questa tecnologia nella realtà del Datacenter si traducono in un enorme risparmio di spazio, consumo elettrico e costi di gestione rispetto alle soluzioni tradizionali per i Tier Web e Application Server.

Il puntatore diretto alle informazioni sui nuovi processori e i nuovi sistemi CoolThreads è il seguente:
www.sun.com/coolthreads
A partire da questa pagina sono disponibili i link a una gran quantità di informazioni.

L'architettura dei server Sun Fire T1000 e T2000 e del processore UltraSPARC® T1 è descritta nel white paper
Sun Fire T1000 and T2000 Server Architecture - Unleashing the UltraSPARC T1 Processor with CoolThreads Technology
www.sun.com/servers/coolthreads/coolthreads_architecture_wp.pdf
La documentazione tecnica di dettaglio del server Sun Fire T2000 è disponibile a partire dalla URL
www.sun.com/products-n-solutions/hardware/docs/Servers/coolthreads/t2000/index.html
I nuovi server sono supportati a partire da Solaris 10. Le principali funzionalità introdotte dal nuovo ambiente operativo si trovano riassunte alla URL
www.sun.com/software/solaris

Le prime risposte degli analisti specializzati come IDC e Forrester sono documentate alle URL
www.sun.com/servers/coolthreads/idc_whitepaper.pdf
www.sun.com/servers/coolthreads/forrester_whitepaper.pdf

Le prestazioni dei nuovi sistemi, anche in relazione al loro consumo energetico, sono dettagliate alla URL
www.sun.com/servers/coolthreads/t1000/benchmarks.jsp
Grazie all'eccezionale efficienza energetica dei nuovi server è possibile ottenere significativi risparmi nella gestione dei Datacenter che si possono; stimare ad esempio con l'aiuto dell'applicazione Java disponibile alla URL
www.sun.com/servers/coolthreads/simdatacenter/index.jsp

I sistemi con processore UltraSPARC® T1 sono progettati per scalare efficacemente su applicazioni orientate al throughput, particolarmente per i servizi Web, application server e Java, nonché per alcuni Database con dimensioni contenute. Le applicazioni che si prestano per sfruttare l'architettura CMT sono le seguenti:

  • Applicazioni multi-threaded, caratterizzate da un piccolo numero di processi con un alto numero di thread.
  • Applicazioni multi-processo, caratterizzate da un gran numero di processi.
  • Applicazioni Java, che sfruttano la natura multithreaded della JVM, tra cui i principali application server (Sun Java Application Server, BEA Weblogic, IBM Websphere, Tomcat).
  • Applicazioni multi-istanza, per cui è possibile girare più istanze della stessa applicazione in parallelo sullo stesso server, eventualmente utilizzando i Solaris Container per garantirne l'isolamento logico.
Al contrario, applicazioni mono-thread con forti vincoli in termini di tempo di risposta e applicazioni con presenza significativa (> 3%) di operazioni in virgola mobile (floating point) non sono adatte per l'attuale implementazione dell'architettura CMT nei sistemi "Niagara".

Parametri di ottimizzazione di base da adottare in /etc/system sono riportati alla URL
www.sun.com/servers/coolthreads/tnb/parameters.jsp.
Utili suggerimenti di configurazione dei sistemi CoolThreads in funzione delle varie applicazioni sono disponibili alla URL
www.sun.com/servers/coolthreads/tnb/applications.jsp

Un caso speciale particolarmente adatto ai sistemi "Niagara" è quello delle applicazioni crittografiche che utilizzano SSL. Infatti il processore UltraSPARC T1 è dotato di un acceleratore hardware per le operazioni in aritmetica modulare che sono alla base degli algoritmi crittografici. Inoltre Solaris 10 fornisce un framework (SCF - Solaris Cryptographic Framework) che permette di interfacciare l'accelerazione hardware con le applicazioni utente, come descritto dal Blueprint
Using the Cryptographic Accelerator of the UltraSPARC T1 Processor
www.sun.com/blueprints/0306/819-5782.html

Un buon documento introduttivo sulle tecniche da adottare per misurare le prestazioni delle applicazioni sui sistemi "Niagara" e per ottimizzarle nelle varie situazioni operative è il Blueprint
Developing and Tuning Applications on UltraSPARC T1 Chip Multithreading Systems
www.sun.com/blueprints/1205/819-5144.html
In particolare, la peculiarità dell'architettura CMT ha bisogno di reinterpretare con attenzione i normali indici di prestazione dei server come il tasso di utilizzazione, e il significato di processore "idle", come spiegato in dettaglio nel blog
blogs.sun.com/travi?entry=ultrasparc_t1_utilization_explained

Il consolidamento di più applicazioni su un sistema CoolThreads mediante i server virtuali realizzati con i Solaris Container di Solaris 10 può essere facilitato utilizzando il tool www.sun.com/bigadmin/content/consolidation_tool/
La tecnologia dei Solaris Container ed esempi pratici di consolidamento per Web farm e applicazioni di e-commerce sono descritti nei Blueprint

Indicazioni utili per gli sviluppatori di applicazioni throughput-oriented e quindi pronte per scalare al meglio sui nuovi sistemi si trovano anche nel white paper
Developing Scalable Applications for Throughput Computing
www.sun.com/servers/coolthreads/coolthreads_whitepaper.pdf
e nell'articolo
Improving Application Efficiency Through Chip Multi-Threading
developers.sun.com/solaris/articles/chip_multi_thread.html.

Le specifiche tecniche di dettaglio del processore UltraSPARC® T1 sono state rilasciate in modalità OpenSPARC e sono disponibili alla URL
opensparc.sunsource.net/nonav/opensparct1.html
mentre l'articolo tecnico di riferimento è il seguente:
P. Kongetira, K. Aingaran, K. Olukotun,
"Niagara: A 32-Way Multithreaded Sparc Processor", IEEE Micro 25, n.2 (March/April 2005), pp. 21-29
DOI bookmark: doi.ieeecomputersociety.org/10.1109/MM.2005.35
Una approfondita lezione del Prof. Patterson dell'Università di Berkeley sull' UltraSPARC T1 è disponibile in Webcast RealPlayer alla URL
webcast.berkeley.edu/courses/stream.php?type=real&webcastid=14788

Infine, un buon puntatore a informazioni tecniche non ufficiali è il blog di Rich McDougall
blogs.sun.com/rmc?entry=welcome_to_the_cmt_era

Ultima revisione 2006-05-23 v7 cmn