Monday, February 25, 2008

Write Parallel Code

i was reading through the Computer Architecture textbook - Computer Architecture A Quantitative Approach, 4th Edition, when this caught my attention just on the 4th page "Whereas the compiler and hardware conspire to exploit ILP implicitly without the programmer’s attention, TLP and DLP are explicitly parallel, requiring the programmer to write parallel code to gain performance."

well, i've been hearing a lot of talk about parallelism and multi-cores during the last month, like when we had a session about Parallel Lock-Free Programming to talk about the advanced synchronization techniques the Microsoft PFX team is working on, also the Computer Architecture course this semester is specially interested in this stuff - as it was upgraded to the advanced level.

all that kept me thinking for some days what can we do to really exploit the power behind multi-core computers? this is a big question that i'm sure some of the smartest minds are working on and i find myself interested in the subject.

the sentence i quoted up there inspired me about a tool that will help programmers harness the power of multi-cores in the same way they do their normal work, the tool should help the programmer to write parallel code by viewing multiple code areas like in the compare editor and adding compiler directives, also it should support debugging support and auto-tests/suggests concurrency control. This should handle a variable number of cores for the target machine and maybe a variable platform too, regardless of the developer machine. The plug-in can be published as an open source project so everyone can benefit and contribute.

i didn't forget to check what have been done so far and i was not amazed to find that there is some work in this field but the Google search didn't return that many matches, that's a very new and open approach and we expect to witness a lot of achievements in the next years. I'd like to mention Model-Driven Development Tool for Parallel Applications and The Grid Compute Server Plug-in for NetBeans IDE besides the Microsoft PFX. You can also check this paper, it was published in 1989 and provides a theoretical treatment of the subject.

No comments: