Lab Home | Phone | Search | ||||||||
|
||||||||
As common developers are ingrained to write sequential programs, writing efficient parallel programs on multi-cores is increasingly complex, often to the point where the limiting factor in speeding up the tasks is the software. The solution is to obviate the need for the programmers to think in a parallel manner while still letting them produce parallel code. We introduce a technique that combines both machine learning and formal methods, Grammatical Automatic Parallel Programming (GAPP), to automatically generate native parallel code on multi-cores. In GAPP, we design multi-core avail parallel Context Free Grammars for a set of program synthesis benchmarks. We demonstrate the automatic generation of controlled degree of parallelism ineffectively using the computational power of multi-core processors. This way, the synthesized architecture aware parallel programs adapt to the underlying hardware architectures for the given software requirements. These programs are efficient in fully realizing the computational power of multi-cores. Finally, we describe the application of GAPP for the synthesis of lock-free parallel programs. Host: Stephan Eidenbenz |