Title :
Synchronization-free multithreading architecture and application programming interface
Author :
Akkary, H. ; Ramly, Sami ; Serhan, Karim
Author_Institution :
Dept. of Electr. & Comput. Eng., American Univ. of Beirut, Beirut, Lebanon
Abstract :
We present a multithreading architecture and application programming interface (API) for writing and executing synchronization-free shared-memory parallel applications. The API provides simple directives with which a programmer can specify parallel or mostly parallel threads in a C/C++ program. In case of inter-thread data dependences, the programmer simply declares these dependences instead of using synchronization directives that serialize the dependent threads execution. The hardware uses the dependences declared by the programmer to split the program execution into disjoint control and data threads that execute concurrently on multiple cooperating latency-tolerant out-of-order cores. We show that the new architecture with its API allows a programmer to parallelize code that is otherwise non-parallelizable with existing parallel programming APIs, such as OpenMP, thus providing better programmability and higher performance. We use as an example Viterbi algorithm code to explain the new architecture and its API and a multicore performance simulator to highlight its performance potential.
Keywords :
C++ language; application program interfaces; multi-threading; multiprocessing systems; software architecture; synchronisation; API; C/C++ program; OpenMP; Viterbi algorithm code; application programming interface; code parallelization; cooperating latency-tolerant out-of-order cores; data threads; disjoint control; inter-thread data dependences; multicore performance simulator; parallel programming; parallel threads; program execution; programmability; synchronization directives; synchronization-free multithreading architecture; synchronization-free shared-memory parallel applications; threads execution; Arrays; Hardware; Instruction sets; Multicore processing; Pipelines; Registers; Toxicology; disjoint out-of-order execution; multicore microprocessors; parallel programming; thread-level parallelism;
Conference_Titel :
Mediterranean Electrotechnical Conference (MELECON), 2014 17th IEEE
Conference_Location :
Beirut
DOI :
10.1109/MELCON.2014.6820580