Project Fortress: A Multi-core Language for Multi-core Processors
The world of multicore processing is coming soon, requiring new languages and programming techniques to leverage it smoothly. Fortress could be our best hope for doing just that.
Monday, January 7th, 2008
The computing world is undergoing a sea change. As computers become more powerful, high performance computing, an endeavor historically relegated to national labs and government institutions, is becoming mainstream. For example, on a daily basis, search engine companies around the world employ farms of machines executing parallel code. Additionally, global networks of privately-owned computers harness processing power - think Folding@home and SETI@home - tackling some of the most computationally challenging problems of modern science. At the same time, microchip manufacturers, in a continuing effort to improve performance, are designing new chips that contain increasing numbers of cores (processors) on a single chip.
Ironically and unfortunately, modern programming languages are ill-equipped to keep pace with these changes. To exploit those cores, programs must execute not only in parallel, but with a degree of parallelism that varies from platform to platform. Portable programs cannot be tied to a specific number of cores, because that number will vary across machines.
The same issue arises when writing programs for large clusters: Programs must execute in parallel on a large and varying number of processors. Most languages don’t directly support any notion of parallelism, requiring the programmer to graft additional notation such as MPI or OpenMP onto programs. Even languages with support for parallelism, such as Java, support “heavyweight” notions of parallelism, where threads are explicitly defined and allocated, and the cost of creating a new thread is typically high.
Moreover, to write effective parallel programs, the programmer needs help. It’s notoriously easy to inadvertently…
Please log in to view this content.
Read More
- Got Security? You're in Denial
- KDE 4.4: Does It Work Yet?
- Writing Custom Nagios Plugins with Python
- Power Up Linux GUI Apps
- Tweeting from the Command Line with Twyt
Rackspace
|