Show simple item record

dc.contributor.authorBender, Michael A.
dc.contributor.authorFineman, Jeremy T.
dc.contributor.authorGilbert, Seth
dc.contributor.authorLeiserson, Charles E.
dc.date.accessioned2004-12-13T07:52:54Z
dc.date.available2004-12-13T07:52:54Z
dc.date.issued2005-01
dc.identifier.urihttp://hdl.handle.net/1721.1/7430
dc.description.abstractA key capability of data-race detectors is to determine whether one thread executes logically in parallel with another or whether the threads must operate in series. This paper provides two algorithms, one serial and one parallel, to maintain series-parallel (SP) relationships "on the fly" for fork-join multithreaded programs. The serial SP-order algorithm runs in O(1) amortized time per operation. In contrast, the previously best algorithm requires a time per operation that is proportional to Tarjan’s functional inverse of Ackermann’s function. SP-order employs an order-maintenance data structure that allows us to implement a more efficient "English-Hebrew" labeling scheme than was used in earlier race detectors, which immediately yields an improved determinacy-race detector. In particular, any fork-join program running in T₁ time on a single processor can be checked on the fly for determinacy races in O(T₁) time. Corresponding improved bounds can also be obtained for more sophisticated data-race detectors, for example, those that use locks. By combining SP-order with Feng and Leiserson’s serial SP-bags algorithm, we obtain a parallel SP-maintenance algorithm, called SP-hybrid. Suppose that a fork-join program has n threads, T₁ work, and a critical-path length of T[subscript ∞]. When executed on P processors, we prove that SP-hybrid runs in O((T₁/P + PT[subscript ∞]) lg n) expected time. To understand this bound, consider that the original program obtains linear speed-up over a 1-processor execution when P = O(T₁/T[subscript ∞]). In contrast, SP-hybrid obtains linear speed-up when P = O(√T₁/T[subscript ∞]), but the work is increased by a factor of O(lg n).en
dc.description.sponsorshipSingapore-MIT Alliance (SMA)en
dc.format.extent194904 bytes
dc.format.mimetypeapplication/pdf
dc.language.isoen
dc.relation.ispartofseriesComputer Science (CS);
dc.subjectAmortized analysisen
dc.subjectalgorithmsen
dc.subjectCilken
dc.subjectdata raceen
dc.subjectdata structureen
dc.subjectdynamic seten
dc.subjectfork-joinen
dc.subjectgraphen
dc.subjectleast common ancestoren
dc.subjectlockingen
dc.subjectmulti-threadingen
dc.subjectmutual exclusionen
dc.subjecton the flyen
dc.subjectorder maintenanceen
dc.subjectparallel computingen
dc.subjectparse treeen
dc.subjectrace detectionen
dc.subjectseries-parallelen
dc.subjectSP-bagsen
dc.subjectSP-hybriden
dc.subjectSP-orderen
dc.subjectthreaden
dc.subjecttraceen
dc.subjecttreeen
dc.subjectwork stealingen
dc.titleOn-the-Fly Maintenance of Series-Parallel Relationships in Fork-Join Multithreaded Programsen
dc.typeArticleen


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record