Multicore programming models must consider evolutionary algorithms

Embedded.com report on the intensfied efforts by industry to develop a robust but practical multicore programmng model. .
Multicore means multiple processors which mean multiple migraines if you are a developer as you have to try and taken a sequential task and break it out into parrallel jobs. Graphic card companies have been doing this for the past 10 – 15 years and they realise the complexitiies involved. The processing of data streams has been the focus of research for the past 8 – 10 years. The advent of Network processors in the late 90s kick started some of this research as these units had (and still do) multiple processing engines. Processors such as Intel IXP1200 (which was the focus of my PhD research) featured 6 Risc Microengines for header processing. Dedictaed SRAM, SDRAM , Receive and Tranmsit register sets.
In the United States, Intel Corp. and Microsoft Corp. have awarded an estimated $10 million, five-year grant to help fund a new Parallel Computing Lab at the University of California at Berkeley, with 14 faculty members initially involved. As many as 20 universities, including MIT, Stanford and the University of Illinois, competed for funding.
My research into how we could improve performance pointed towards the fact that Multicore on its own will not be the solution. Programming in parrallel is a black art and often trial and error will determine the best solutuion. What I discovered was that if you build a good cycle accurate s/w model of the problem domain and use evolutionary algorithms and local search methods you can explore a vast number of permutations of chip architectiure. This approach can be ,mapped to the programming issue as you can instruct the model to use a variety of functions and routines as appropiate. The process of evolution will then produce a pareto curve of possible solutions. The results from my research highlighted architectural considerations that an engineer at first glance would not normally consider but the performance figures justified the configuration. This approach to multicore programming will only work if parameter driven cycle accurate simiulators of the problem domain are available. I built my own using POOSL and it took me 3 years. Manufactuters siuch as Intel and AMD need to provide these open models to the developer community. Using these models we can then further explore how mulitcore programming models can exploit these architectures. The development of these multicore frameworks should use as mny different techniques as possible., EA and local search are ideal candidates to assist in this exploration and development.
Bonus Link – A copy of the presentation I presented at ANCS 2006 on my work

Leave a Reply

Your email address will not be published. Required fields are marked *