1
A COMMENT ON MANY-CORE COMPUTING AND REAL-TIME AUDIO SOFTWARE SYSTEMS (2008) Ge Wang Center for Computer Research in Music and Acoustics (CCRMA) Stanford University [email protected] While much remains to be seen in the ongoing shift to- wards massively many-core computing, one perhaps piv- otal point of focus lies at the intersection of low-level im- plementation languages (e.g., C/C++) and runtime oper- ating system support. Here, we briefly discuss one issue in this area: concurrent programming models and what may need to happen to languages and operating systems to effectively support audio programming on many-core systems – such that existing and future audio softwares can take advantage of these systems. The up-to-now dominant model of using preemptive threading to distribute computation among multiple cores is rapidly becoming less solvent for time-critical, high- throughput systems, such as real-time audio engines (the model was never ideal from a programming point of view, and many-core computing further accentuates its short- comings). Due to their nondeterministic nature, preemp- tive threads are inherently difficult to reason about, debug, and maintain. Also, the preemptive nature and computa- tional overhead of threads make it hard to synchronize par- allel computations in predictable and time-sensitive ways. Furthermore, it is often unclear (to programmers) whether “parallelization” via threads are beneficial to a particular situation – the decision depends on many complex factors such as the nature of the algorithm, timing and synchro- nization needs, as well as the number of available cores - too few threads will fail to take advantage, too many threads can introduce significant overhead due to unneces- sary thread management, context-switching, and schedul- ing. This can make it extremely challenging to re-architect existing, sequential systems for many-core. Adopting a developer-centric point of view, it seems imperative that the computing community should produce an agreed-upon, generalized lower-level concurrent pro- gramming paradigm (e.g., language extensions at the C/C++ level, plus integrated OS support) that can flexibly specify synchronous, multi-core friendly programs. Such a pro- gramming model should allow concurrent code to operate and synchronize with minimal overhead, while leveraging underlying operating system support to abstract the under- lying core configuration/availability. One potentially promising approach lies in Apple’s up- coming 10.6 (Snow Leopard) release of the OS X oper- ating system [1], which is to offer both the addition of “blocks” (parallelizable segments of code) as an under- lying programming language feature, along with a cen- tralized mechanism in the operating system kernel, called Grand Central Dispatch (GCD). In short, GCD interprets the blocks specified by the programmer in real-time, and allocates them across available cores (and potentially the GPU). This approach eliminates the need for program- mers to account for exactly how many cores are present, while reducing thread-allocation overheads by centraliz- ing blocks and dynamically deciding when to spawn new parallel entities as beneficial. Also importantly, this ap- proach seems to be potentially scalable. Of course, it re- mains to be seen how this approach actually works, in par- ticular with a wide array of audio systems. At the same time, it is encouraging that a major OS platform has taken concrete, developer-centric steps to try and address the many-core problem. Hopefully other platforms (e.g., Linux and Windows) will follow suit, and the community can produce a portable, industry-wide many-core programming standard. As de- signers and implementors of real-time computer music soft- ware, it is crucial for us to experiment early and freely with technology as they become available, and to cham- pion audio-friendly solutions at every level. 1. REFERENCES [1] Apple Inc. 2008. ”Mac OS X State of the Union”, Keynote, Apple World Wide Devel- oper Conference.

Comment on Many Core Computing and Real Time Audio Software

  • Upload
    ipires

  • View
    214

  • Download
    1

Embed Size (px)

DESCRIPTION

Comment on Many Core Computing and Real Time Audio Software

Citation preview

  • A COMMENT ONMANY-CORE COMPUTINGAND REAL-TIME AUDIO SOFTWARE SYSTEMS (2008)

    Ge WangCenter for Computer Research in Music and Acoustics (CCRMA)

    Stanford [email protected]

    While much remains to be seen in the ongoing shift to-wards massively many-core computing, one perhaps piv-otal point of focus lies at the intersection of low-level im-plementation languages (e.g., C/C++) and runtime oper-ating system support. Here, we briefly discuss one issuein this area: concurrent programming models and whatmay need to happen to languages and operating systemsto effectively support audio programming on many-coresystems such that existing and future audio softwarescan take advantage of these systems.

    The up-to-now dominant model of using preemptivethreading to distribute computation among multiple coresis rapidly becoming less solvent for time-critical, high-throughput systems, such as real-time audio engines (themodel was never ideal from a programming point of view,and many-core computing further accentuates its short-comings). Due to their nondeterministic nature, preemp-tive threads are inherently difficult to reason about, debug,and maintain. Also, the preemptive nature and computa-tional overhead of threads make it hard to synchronize par-allel computations in predictable and time-sensitive ways.Furthermore, it is often unclear (to programmers) whetherparallelization via threads are beneficial to a particularsituation the decision depends on many complex factorssuch as the nature of the algorithm, timing and synchro-nization needs, as well as the number of available cores- too few threads will fail to take advantage, too manythreads can introduce significant overhead due to unneces-sary thread management, context-switching, and schedul-ing. This can make it extremely challenging to re-architectexisting, sequential systems for many-core.

    Adopting a developer-centric point of view, it seemsimperative that the computing community should producean agreed-upon, generalized lower-level concurrent pro-gramming paradigm (e.g., language extensions at the C/C++level, plus integrated OS support) that can flexibly specifysynchronous, multi-core friendly programs. Such a pro-gramming model should allow concurrent code to operateand synchronize with minimal overhead, while leveragingunderlying operating system support to abstract the under-lying core configuration/availability.

    One potentially promising approach lies in Apples up-coming 10.6 (Snow Leopard) release of the OS X oper-ating system [1], which is to offer both the addition ofblocks (parallelizable segments of code) as an under-

    lying programming language feature, along with a cen-tralized mechanism in the operating system kernel, calledGrand Central Dispatch (GCD). In short, GCD interpretsthe blocks specified by the programmer in real-time, andallocates them across available cores (and potentially theGPU). This approach eliminates the need for program-mers to account for exactly how many cores are present,while reducing thread-allocation overheads by centraliz-ing blocks and dynamically deciding when to spawn newparallel entities as beneficial. Also importantly, this ap-proach seems to be potentially scalable. Of course, it re-mains to be seen how this approach actually works, in par-ticular with a wide array of audio systems. At the sametime, it is encouraging that a major OS platform has takenconcrete, developer-centric steps to try and address themany-core problem.

    Hopefully other platforms (e.g., Linux and Windows)will follow suit, and the community can produce a portable,industry-wide many-core programming standard. As de-signers and implementors of real-time computer music soft-ware, it is crucial for us to experiment early and freelywith technology as they become available, and to cham-pion audio-friendly solutions at every level.

    1. REFERENCES

    [1] Apple Inc. 2008. Mac OS X State of theUnion, Keynote, Apple World Wide Devel-oper Conference.

    IndexICMC 2008 HomeConference InfoWelcome from the ICMA PresidentICMA OfficersWelcome from the ICMC 2008 Organising CommitteeICMC 2008Previous ICMCsICMC 2008 Paper Panel & Music CuratorsICMC 2008 ReviewersICMC 2008 Best Paper Award

    SessionsMonday, 25 August 2008Languages and Environments 1Interaction and Improvisation 1Sound SynthesisComputational Modeling of MusicDemos 1Posters 1Interaction and Improvisation 2Aesthetics, History, and Philosophy 1

    Tuesday, 26 August 2008MiscellaneousAlgorithmic Composition Tools 1Network PerformanceComputational Music Analysis 1Panel 1: Reinventing Audio and Music Computation fo ...Panel 2: Towards an Interchange Format for Spatial ...

    Wednesday, 27 August 2008Studio Reports 1Mobile Computer Ensemble PlayDemos 2Posters 2Algorithmic Composition Tools 2Interface, Gesture, and Control 1

    Thursday, 28 August 2008Interface, Gesture, and Control 2Languages and Environments 2Spatialization 1Computational Music Analysis 2Panel 3: Network PerformanceDemos 3Posters 3

    Friday, 29 August 2008Sound ProcessingAesthetics, History, and Philosophy 2Interface, Gesture, and Control 3Spatialization 2Algorithmic Composition Tools 3Studio Reports 2

    AuthorsAll authorsABCDEFGHIJKLMNOPQRSTUVWYZ

    PapersAll papersPapers by Sessions

    Topicscritical theory/philosophy of technology, postmodern cy ...sociology/anthropology of everyday sounds, situated per ...history of computer music, women and gender studies, ed ...philosophy/culture/psychology, music information retrie ...electroacoustic music composition, aesthetics of music, ...singing analysis/synthesis, music analysis/synthesis, v ...interactive and real-time systems and languages, music ...human-computer interaction, sound synthesis/analysis, i ...interaction design, computer music, performance art, el ...physical interface design, performance systems, gesture ...language/education/history/sociology of computer music, ...composition systems and techniques, languages for compu ...programming languages/systems, audio synthesis/analysis ...composition, music cognition, music informatics, human- ...music information retrieval, audio signal processing, p ...computational musicology, music cognition, music and AI ...music cognition, rhythm/meter/timing/tempo, computation ...music information retrieval, audio content analysis, to ...spatial audio, audio signal processing, auditory percep ...physical modelling, spatial audio, room acoustics, aura ...sonic interaction design, physics-based sound synthesis ...audio signal processing, sound synthesis, acoustics of ...audio signal processing, acoustics, software systemsphysics-based sound synthesis, virtual room acousticscomposition, music analysis, software for pedagogyPANEL: Towards an Interchange Format for Spatial audio ...PANEL: Network PerformancePANEL: Reinventing Audio and Music Computation for Many ...

    SearchHelpBrowsing the Conference ContentThe Search FunctionalityAcrobat Query LanguageUsing the Acrobat ReaderConfiguration and Limitations

    AboutCurrent paperPresentation sessionAbstractAuthorsGe Wang