Show simple item record

dc.contributor.advisorCharles E. Leiserson.en_US
dc.contributor.authorKaler, Tim(Tim F. S.)en_US
dc.contributor.otherMassachusetts Institute of Technology. Department of Electrical Engineering and Computer Science.en_US
dc.date.accessioned2021-01-06T19:35:37Z
dc.date.available2021-01-06T19:35:37Z
dc.date.copyright2020en_US
dc.date.issued2020en_US
dc.identifier.urihttps://hdl.handle.net/1721.1/129252
dc.descriptionThesis: Ph. D., Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, September, 2020en_US
dc.descriptionCataloged from student-submitted PDF of thesis.en_US
dc.descriptionIncludes bibliographical references (pages 231-256).en_US
dc.description.abstractThe widespread availability of large multicore computers in the cloud has given engineers and scientists unprecedented access to large computing platforms. Traditionally, high-end computing solutions have been developed and used by only a small community, as these solutions rely on expensive and specialized computing environments. The emergence of large-scale cloud computing providers, however, has democratized access to large-scale (although not necessarily HPC-scale) computing power, which can now be rented on-demand with just a credit card. The complexity of parallel programming, however, has made it more difficult for even expert programmers to develop high-quality multicore software systems. For average programmers, developing parallel programs that are debuggable, correct, and performant is a daunting challenge.en_US
dc.description.abstractThis thesis is concerned with the development of programming technologies that reduce the complexity of parallel programming to make it easier for average programmers to exploit the capabilities of multicore hardware. I contend that realizing the full potential of the multicore revolution requires the development of programming technologies that make it easier to write quality code -- code that has a simple understandable structure and performs well in practice. These programming technologies broadly include parallel algorithms, data structures, optimization techniques, profiling tools, and system design principles. Along these ends, this thesis presents seven intellectual artifacts from the domains of parallel algorithms, multicore-centric systems for scientific computing, and programming tools that make it easier to write quality code by simplifying the design, analysis, and performance engineering of multicore software: --en_US
dc.description.abstractChromatic: Parallel algorithms for scheduling data-graph computations deterministically. -- Color: Parallel algorithms and ordering heuristics for graph coloring that have the simple semantics of serial code. -- PARAD: An ecient and parallelism-preserving algorithm for performing automatic differentiation in parallel programs. -- Connectomics: An end-to-end image-segmentation pipeline for connectomics using a single large multicore. -- Alignment: An image-alignment pipeline for connectomics that uses memory-ecient algorithms, and techniques for judiciously exploiting performance{accuracy tradeoffs. -- Reissue: Reissue policies for reducing tail-latency in distributed services that are easy to analyze and eective in practice. --en_US
dc.description.abstractCilkmem: Ecient algorithms and tools for measuring the worst-case memory high-water mark of parallel programs. Although the emphasis and domains of these artifacts vary, they each involve the discovery of a way to tame complexity in parallel software systems without compromising, in fact, usually enhancing, theoretical guarantees and real-world performance.en_US
dc.description.statementofresponsibilityby Tim Kaler.en_US
dc.format.extent256 pagesen_US
dc.language.isoengen_US
dc.publisherMassachusetts Institute of Technologyen_US
dc.rightsMIT theses may be protected by copyright. Please reuse MIT thesis content according to the MIT Libraries Permissions Policy, which is available through the URL provided.en_US
dc.rights.urihttp://dspace.mit.edu/handle/1721.1/7582en_US
dc.subjectElectrical Engineering and Computer Science.en_US
dc.titleProgramming technologies for engineering quality multicore softwareen_US
dc.typeThesisen_US
dc.description.degreePh. D.en_US
dc.contributor.departmentMassachusetts Institute of Technology. Department of Electrical Engineering and Computer Scienceen_US
dc.identifier.oclc1227519410en_US
dc.description.collectionPh.D. Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Scienceen_US
dspace.imported2021-01-06T19:35:36Zen_US
mit.thesis.degreeDoctoralen_US
mit.thesis.departmentEECSen_US


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record