TY - GEN
T1 - Commutative set
T2 - 32nd ACM Conference on Programming Language Design and Implementation, PLDI 2011
AU - Prabhu, Prakash
AU - Ghosh, Soumyadeep
AU - Zhang, Yun
AU - Johnson, Nick P.
AU - August, David I.
PY - 2011
Y1 - 2011
N2 - Sequential programming models express a total program order, of which a partial order must be respected. This inhibits parallelizing tools from extracting scalable performance. Programmer written semantic commutativity assertions provide a natural way of relaxing this partial order, thereby exposing parallelism implicitly in a program. Existing implicit parallel programming models based on semantic commutativity either require additional programming extensions, or have limited expressiveness. This paper presents a generalized semantic commutativity based programming extension, called Commutative Set (COMMSET), and associated compiler technology that enables multiple forms of parallelism. COMMSET expressions are syntactically succinct and enable the programmer to specify commutativity relations between groups of arbitrary structured code blocks. Using only this construct, serializing constraints that inhibit parallelization can be relaxed, independent of any particular parallelization strategy or concurrency control mechanism. COMMSET enables well performing parallelizations in cases where they were inapplicable or non-performing before. By extending eight sequential programs with only 8 annotations per program on average, COMMSET and the associated compiler technology produced a geomean speedup of 5.7x on eight cores compared to 1.5x for the best non-COMMSET parallelization.
AB - Sequential programming models express a total program order, of which a partial order must be respected. This inhibits parallelizing tools from extracting scalable performance. Programmer written semantic commutativity assertions provide a natural way of relaxing this partial order, thereby exposing parallelism implicitly in a program. Existing implicit parallel programming models based on semantic commutativity either require additional programming extensions, or have limited expressiveness. This paper presents a generalized semantic commutativity based programming extension, called Commutative Set (COMMSET), and associated compiler technology that enables multiple forms of parallelism. COMMSET expressions are syntactically succinct and enable the programmer to specify commutativity relations between groups of arbitrary structured code blocks. Using only this construct, serializing constraints that inhibit parallelization can be relaxed, independent of any particular parallelization strategy or concurrency control mechanism. COMMSET enables well performing parallelizations in cases where they were inapplicable or non-performing before. By extending eight sequential programs with only 8 annotations per program on average, COMMSET and the associated compiler technology produced a geomean speedup of 5.7x on eight cores compared to 1.5x for the best non-COMMSET parallelization.
KW - automatic parallelization
KW - implicit parallelism
KW - programming model
KW - semantic commutativity
KW - static analysis
UR - http://www.scopus.com/inward/record.url?scp=79959873913&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=79959873913&partnerID=8YFLogxK
U2 - 10.1145/1993498.1993500
DO - 10.1145/1993498.1993500
M3 - Conference contribution
AN - SCOPUS:79959873913
SN - 9781450306638
T3 - Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)
SP - 1
EP - 11
BT - PLDI'11 - Proceedings of the 2011 ACM Conference on Programming Language Design and Implementation
PB - Association for Computing Machinery
Y2 - 4 June 2011 through 8 June 2011
ER -