A Multicore Operating System with QoS Guarantees for Network

11
PAPERS A Multicore Operating System with QoS Guarantees for Network Audio Applications JUAN A. COLMENARES 1,4 ([email protected]) , NILS PETERS, 1,2,3 AES Member ([email protected]) , GAGE EADS 1 ([email protected]) , IAN SAXTON 1,2 ([email protected]) , ISRAEL JACQUEZ 1 ([email protected]) , JOHN D. KUBIATOWICZ 1 ([email protected]) , AND DAVID WESSEL 1,2 ([email protected]) 1 Parallel Computing Laboratory, UC Berkeley, CA, USA 2 Center for New Music and Audio Technologies, UC Berkeley, CA, USA 3 International Computer Science Institute, Berkeley, CA, USA 4 Samsung Research America – SiliconValley, San Jose, CA, USA This paper is about the role of the operating system (OS) within computer nodes of network audio systems. While many efforts in the network-audio community focus on low-latency network protocols, here we highlight the importance of the OS for network audio applications. We present Tessellation, an experimental OS tailored to multicore processors. We show how specific OS features, such as guaranteed resource allocation and customizable user-level run- times, can help ensure quality-of-service (QoS) guarantees for data transmission and audio signal processing, especially in scenarios where network bandwidth and processing resources are shared between applications. To demonstrate performance isolation and service guarantees, we benchmark Tessellation under different conditions using a resource-demanding network audio application. Our results show that Tessellation can be used to create low-latency network audio systems. 0 INTRODUCTION Responsive real-time performance is essential to many audio applications [36]. Unfortunately, achieving this goal is very difficult or impossible with many mainstream oper- ating systems and operating environments. Network audio applications, for instance, can suffer from a variety of variable and unexpected delays: from poten- tially slow and unstable network connections to variable interrupt latencies and excessive scheduling delays. For au- dio applications, the entire processing chain contributes to the latency. However, many development efforts in the net- work audio community are directed toward network proto- cols with quality-of-service (QoS) guarantees (e.g., Audio Video Bridging (AVB) [19]) and low-latency compression algorithms (e.g., Fraunhofer’s Ultra Low Delay (ULD) Au- dio Codec)—neglecting the role of the operating system (OS) at the beginning and end of the network audio chain. Fortunately, the computer industry has recently under- gone a paradigm shift away from sequential to parallel computing [7], encouraging a reexamination of the tradi- tional software layers and the structure of the OS. Therefore, there is a unique opportunity for the audio community to raise awareness of the importance of QoS and low latency for network audio applications and eventually to contribute to the next generation of OSs. This paper sheds a light on the role of the OS for net- work audio applications. We show how Tessellation OS [15,24], an experimental multicore operating system devel- oped in the Parallel Computing Lab at UC Berkeley, can help achieve low latency and predictable behavior for real- time audio applications. Tessellation focuses on enforcing resource-allocation guarantees for client applications. By switching the focus away from utilization and toward re- source management, Tessellation provides an ideal envi- ronment in which to host network audio applications. Tessellation has been developed with an eye toward net- worked real-time audio applications (intended for use in live performances) [14] and other next-generation client appli- cations (e.g., a parallel web browser [20] and a meeting diarist [17]). Not only can such applications benefit from more computational power than available from a single CPU, but they can also benefit from an execution environ- ment with reduced variability and customized scheduling. J. Audio Eng. Soc., Vol. 61, No. 4, 2013 April 1

Transcript of A Multicore Operating System with QoS Guarantees for Network

Page 1: A Multicore Operating System with QoS Guarantees for Network

PAPERS

A Multicore Operating System with QoSGuarantees for Network Audio Applications

JUAN A. COLMENARES1,4

([email protected]), NILS PETERS,1,2,3 AES Member

([email protected]), GAGE EADS1

([email protected]),

IAN SAXTON1,2

([email protected]), ISRAEL JACQUEZ1

([email protected]), JOHN D. KUBIATOWICZ1

([email protected]), AND

DAVID WESSEL1,2

([email protected])

1Parallel Computing Laboratory, UC Berkeley, CA, USA2Center for New Music and Audio Technologies, UC Berkeley, CA, USA

3International Computer Science Institute, Berkeley, CA, USA4Samsung Research America – Silicon Valley, San Jose, CA, USA

This paper is about the role of the operating system (OS) within computer nodes of networkaudio systems. While many efforts in the network-audio community focus on low-latencynetwork protocols, here we highlight the importance of the OS for network audio applications.We present Tessellation, an experimental OS tailored to multicore processors. We show howspecific OS features, such as guaranteed resource allocation and customizable user-level run-times, can help ensure quality-of-service (QoS) guarantees for data transmission and audiosignal processing, especially in scenarios where network bandwidth and processing resourcesare shared between applications. To demonstrate performance isolation and service guarantees,we benchmark Tessellation under different conditions using a resource-demanding networkaudio application. Our results show that Tessellation can be used to create low-latency networkaudio systems.

0 INTRODUCTION

Responsive real-time performance is essential to manyaudio applications [36]. Unfortunately, achieving this goalis very difficult or impossible with many mainstream oper-ating systems and operating environments.

Network audio applications, for instance, can suffer froma variety of variable and unexpected delays: from poten-tially slow and unstable network connections to variableinterrupt latencies and excessive scheduling delays. For au-dio applications, the entire processing chain contributes tothe latency. However, many development efforts in the net-work audio community are directed toward network proto-cols with quality-of-service (QoS) guarantees (e.g., AudioVideo Bridging (AVB) [19]) and low-latency compressionalgorithms (e.g., Fraunhofer’s Ultra Low Delay (ULD) Au-dio Codec)—neglecting the role of the operating system(OS) at the beginning and end of the network audio chain.

Fortunately, the computer industry has recently under-gone a paradigm shift away from sequential to parallelcomputing [7], encouraging a reexamination of the tradi-tional software layers and the structure of the OS. Therefore,

there is a unique opportunity for the audio community toraise awareness of the importance of QoS and low latencyfor network audio applications and eventually to contributeto the next generation of OSs.

This paper sheds a light on the role of the OS for net-work audio applications. We show how Tessellation OS[15,24], an experimental multicore operating system devel-oped in the Parallel Computing Lab at UC Berkeley, canhelp achieve low latency and predictable behavior for real-time audio applications. Tessellation focuses on enforcingresource-allocation guarantees for client applications. Byswitching the focus away from utilization and toward re-source management, Tessellation provides an ideal envi-ronment in which to host network audio applications.

Tessellation has been developed with an eye toward net-worked real-time audio applications (intended for use in liveperformances) [14] and other next-generation client appli-cations (e.g., a parallel web browser [20] and a meetingdiarist [17]). Not only can such applications benefit frommore computational power than available from a singleCPU, but they can also benefit from an execution environ-ment with reduced variability and customized scheduling.

J. Audio Eng. Soc., Vol. 61, No. 4, 2013 April 1

Page 2: A Multicore Operating System with QoS Guarantees for Network

COLMENARES ET AL. PAPERS

Tessellation has several distinctive features: (1) it pro-vides performance isolation and strong partitioning of re-sources; (2) it separates global decisions about resource al-location from application-specific usage of resources (i.e.,two-level scheduling); and (3) it implements an AdaptiveResource Centric Computing (ARCC) approach to pro-vide adequate support for a dynamic mix of real-time,interactive, and high-throughput parallel applications. To-gether, these features provide a unique environment fornext-generation applications.

In particular, the strong performance isolation providedby Tessellation permits software components running atthe endpoints of a network audio application to yield pre-dictable, low-jitter audio processing—providing an essen-tial complement to the network-level improvements men-tioned above. Further, the presence of user-level customizedscheduling gives flexibility to exploit parallelism in anapplication-specific manner.

The remainder of the paper is structured as follows. Therequirements of network audio applications are reviewedin Section 1. Section 2 introduces Tessellation OS and dis-cusses some of its salient features. Then, in Section 3, wepresent a test network audio application, which involvesa high-bandwidth, low-latency digital music interface forcontrolling a computationally demanding polyphonic soft-ware synthesizer. The experiments in Section 4 measure theresponse times of our test application running on Tessella-tion under different load conditions. Finally, we concludethe paper in Section 5 with our closing remarks and futurework. Although we focus on audio applications in localarea networks (LANs), the principles discussed here arealso valid for networks covering longer distances.

1 REQUIREMENTS OF AUDIO APPLICATIONS

When performing on musical instruments, musiciansusually receive acoustical feedback from their instrumentswithin a few milliseconds (e.g., the time between hittinga drum and hearing its sound). Studies have shown thathumans can perceive artificial delays of as small as 1 msadded to the acoustical feedback [30]. In multimodal vir-tual environments, Altinsoy [6] suggested that the tactileand auditory feedback must be within 10 ms. For a pianoduet, Sawchuk et al. [32] found that the acoustical path-length between the performers ideally should not be above10 ms: the longer the pathlength, the harder it is to performin synchrony, especially in fast musical sections. For mostsmall group performances, the authors of [12] report thatthe maximum tolerable delay is about 50 ms. From thesedelay times we can establish an upper bound for the idealend-to-end latency in audio applications.

In real-time networked audio applications, the end-to-end latency and its variability (jitter) depend on a numberof accumulative factors, such as AD and DA conversions,buffering and packetization, which are part of communica-tion protocol processing, queueing delays within the net-work, transmission delays, which are bounded by speed oflight, and (optional) data compression and decompression.In distributed performances over large distances using wide

area networks (WANs), these factors can easily accumulateto latencies much higher than the aforementioned 50 ms.

Further, audio processing stages at the sender’s and re-ceiver’s sides (e.g., spatialization of audio streams [13]) canintroduce additional delays depending on the completiontimes of the (usually) block-wise audio processes. In block-wise audio processing, a chunk of audio data is processedat once. Block-wise processing can take advantage of low-level hardware optimizations such as caching, pipelining,and single-instruction/multiple-data (SIMD) vectorization.On the other hand, the larger the block size, the longer thewaiting time to buffer all incoming audio samples beforethe next block-wise processing can start. The choice of theright block size is consequently a tradeoff between tolera-ble latency and computational speed. To reduce the blocksize of the audio computation, the worst-case completiontimes of the processing tasks need to be minimized, forinstance by exploiting parallel computing strategies (e.g.,[11,14,34]).

In LANs the transmission delay is often low enough thatit is not the dominant factor in the end-to-end latenciesof networked music applications. In this case the softwarerunning on each computing node, and the operating sys-tem in particular, plays a much more significant role inmeeting the latency requirements of such applications. Forinstance, device interrupt handling, network protocol pro-cessing, scheduling decisions, and contention on resourcesused by multiple applications, if not controlled properly bythe OS, may result in unpredictable delays.

In the next section we present Tessellation OS and brieflydiscuss the salient features that allow us to control the sys-tems software factors mentioned above in order to meetthe latency requirements of LAN-based live-performancemusic applications.

2 OVERVIEW OF TESSELLATION OS

Tessellation [15,24] embodies an Adaptive ResourceCentric Computing (ARCC) approach, illustrated in Fig. 1.This approach enables a simultaneous mix of interactive,real-time, and high-throughput parallel applications by au-tomatically discovering the mix of resource assignmentsthat maximizes the net system utility for the end user—anindicator of how well the applications are meeting their re-quirements and the whole system is satisfying the user’sneeds.

Tessellation treats resources as “first-class citizens” thatcan be assigned to sets of application components in orderto provide predictable performance, which is essential forlive-performance musical and other time-sensitive applica-tions. Application components are grouped and execute inQoS domains called cells, and Tessellation distributes re-sources to cells. Further, each cell offers the componentsit hosts guaranteed access to its assigned resources. Thestable, performance-isolated environment of a cell makesit possible to experimentally observe application perfor-mance metrics (e.g., completion time and throughput) andpredict how these metrics vary with resources—thus en-abling accurate resource optimization.

2 J. Audio Eng. Soc., Vol. 61, No. 4, 2013 April

Page 3: A Multicore Operating System with QoS Guarantees for Network

PAPERS MULTICORE OS WITH QOS GUARANTEES FOR NETWORK AUDIO APPLICATIONS

Fig. 1. Adaptive Resource-Centric Computing (ARCC): Resourceallocations are automatically adjusted to maximize the overallsystem utility for the end user. Resources are distributed to cells,which provide performance isolation and guaranteed access to re-sources to the hosted applications and services. Cells are depictedas rounded boxes with solid lines.

Fig. 2. Decomposing an application into a set of communicatingcomponents and services running with QoS guarantees withincells. Tessellation OS provides cells that host device drivers andOS services.

The Tessellation kernel is a thin software layer that pro-vides support for ARCC. It implements cells and offersinterfaces for cell composition and assigning resources tocells. In the rest of this section we briefly discuss the keyaspects of Tessellation OS.

2.1 The Cell ModelCells provide the basic unit of computation and protec-

tion in Tessellation. They are performance-isolated resourcecontainers that export their resources to user level. Once re-sources (e.g., CPU cores and memory pages) have beenassigned to cells, the Tessellation kernel gives cells fullcontrol over the usage of the resources allocated to them.Cells control their resource usage at user-level (i.e., outsidethe kernel) and the kernel is just minimally involved.

Applications in Tessellation are created by composingcells that communicate via efficient and secure channels,which enable fast asynchronous message-passing commu-nication at user level (see Fig. 2). Channels allow an ap-plication component in a cell to access OS services (e.g.,network and file services) and to interact with other appli-cation components residing in other cells.

Fig. 3. Space-time partitioning (STP) in Tessellation OS: a snap-shot in time with four spatial partitions.

Space-Time Partitioning [25,24]: Tessellation dividesthe hardware into a set of spatial partitions (see Fig. 3). Par-titionable resources include CPU cores, pages in memory,and guaranteed fractional services from other cells (e.g.,a throughput reservation of 150 Mbps from the networkservice). They may also include guaranteed cache-memoryunits, portions of memory bandwidth, and fractions of theenergy budget, when the supporting hardware mechanismsare available (e.g., [5,22,29,31]).

Tessellation OS virtualizes spatial partitions by time-multiplexing the whole partitions onto the available hard-ware in a strictly controlled manner. Thus, at any givenpoint in time some partitions can be active while othersare standing by. Tessellation exports partitions to applica-tions and OS services through the cell abstraction. Thekernel implements a scheduling algorithm that coordinatescell switching and ensures that each cell has simultane-ous access to the entire “gang” of resources assigned to itsassociated partition. In other words, CPU cores and otherresources are gang-scheduled [28,16] such that cells areunaware of this multiplexing.

Tessellation provides several time-multiplexing policiesfor cells, some of them offering high degrees of time pre-dictability; they are: (1) no multiplexing (cell given ded-icated access to its assigned resources), (2) time trigger-ing (cell active during predetermined and periodic timewindows), (3) event triggering (cell activated upon eventarrivals, but its contribution to the total utilization never ex-ceeds its assigned fraction of processor time), and (4) besteffort (cell with no time guarantees).

Two-Level Scheduling [26,15]: Two-level schedulingin Tessellation separates global decisions about resourceallocation to cells (first level) from management andscheduling of resources within cells (second level). Re-source redistribution occurs at a coarse time scale to amor-tize the decision-making cost and allow time for second-level scheduling decisions (made by each cell) to becomeeffective.

The user-level runtimec within each cell may utilize itsresources as it wishes—without interference from othercells. The cell’s runtime can thus be customized for specificapplications or application domains with, for instance, aparticular CPU scheduling algorithm.

J. Audio Eng. Soc., Vol. 61, No. 4, 2013 April 3

Page 4: A Multicore Operating System with QoS Guarantees for Network

COLMENARES ET AL. PAPERS

2.2 Service-Oriented ArchitectureCells provide a convenient abstraction for building OS

services (such as network interfaces, file systems, and win-dowing systems) with QoS guarantees. Such services canreside in dedicated cells, have exclusive control over de-vices, and encapsulate user-level device drivers (see Fig. 1).Each service can thus arbitrate access to its enclosed de-vices and leverage the cell’s performance isolation and cus-tomizable QoS-aware schedulers to offer service-time guar-antees to applications and services residing in other cells.1

Services may exploit parallelism to reduce service timesor increase service throughput. Further, services can shapedata and event flows coming from external sources withunpredictable behavior and prevent other cells from beingaffected.

Each service in Tessellation comes with a library to fa-cilitate the development of client applications. The clientlibraries offer friendly, high-level application programminginterfaces (APIs) to manage connections and interact withthe services (i.e., they hide most of the details of inter-cellchannel communication).

Two examples of services in Tessellation that offer QoSguarantees to client cells are the network service and theGUI service. The former in particular is key to low-latencynetworked music applications.

Network Service: This service provides access to net-work adapters through an API similar to the socket API[33] found in Linux and other Unix-like OSs. The net-work service is implemented using the lightweight TCP/IPprotocol stack lwIP [2]. This service allows the specifi-cation of minimum throughput reservations for data flowsbetween network adapters and client cells. It guaranteesthat the data flows are processed with at least the specifiedlevels of throughput, provided it is feasible to do so withthe networking and computational resources available tothe service (e.g., the aggregate reservation should be lessthan or equal to the total system throughput). Moreover,the network service distributes any excess throughput pro-portionally among the client cells via an adaptation of themClock algorithm [18].

GUI Service: This service provides a windowing sys-tem with response-time guarantees for visual applications[21]. It is a rearchitected version of the Nano-X WindowSystem [3]. The GUI service exploits a user-level earliest-deadline-first (EDF) scheduler [23] to take advantage ofmultiple cores and ensure that rendering jobs with earlierdeadlines are scheduled sooner. It supplements the EDFscheduler with a resource reservation scheme, called mul-tiprocessor constant bandwidth server (M-CBS) [9,10], toprovide different CPU reservations to different renderingtasks—a big distinction from traditional GUI systems.

Additionally, Tessellation offers a console service thatprints character strings from other cells to a serial console(via a serial port). This service has exclusive access to the

1 In keeping with ARCC, we view the services offered by suchservice cells as additional resources to be managed by the adaptiveresource allocation architecture.

console device, and for a client cell, printing a string isjust sending a one-way message on a dedicated channel tothe console service. Thus, cells do not need to contend andwait for accessing the console device, and the influence ofprinting console messages on each application’s behaviorcan be controlled independently and minimized. The con-sole service was instrumental in collecting the experimentaldata presented in Section 5.

2.3 Adaptive Resource AllocationTessellation can use adaptive resource allocation to pro-

vide QoS guarantees to applications while maximizing effi-ciency in the system. The Resource Allocation Policy (RAP)Service encapsulates the decision-making logic that dis-tributes resources to cells. It is an implementation of theupper block in Fig. 1, which involves performance moni-toring (i.e., observation) and modeling as well as resourcepartitioning and distribution.

The RAP Service runs in its own cell and communicateswith applications and other services through channels. It de-cides how resources should be divided among cells in thesystem by monitoring other cells, adapting their resourcesin response to changing conditions, and controlling the ad-mission of new cells into the system.2 The RAP Servicecommunicates the allocation decisions to the kernel via asystem call and to services through their QoS Specificationinterfaces over channels.

Note that the user can specify the set of resources to begiven to a cell and indicate to the RAP Service that suchresource allocation cannot change. This feature is very valu-able to musical performers. It gives them complete controlover the resources allocated to their musical applications.Further, it assures performers that their applications willbehave as expected because they can recreate the executionconditions in which the applications were tested, profiled,and optimized.

More details on adaptive resource-allocation in Tessella-tion appear in [15].

3 A LAN MUSICAL APPLICATION

The SLABS control interface, third-prize winner at the2009 Guthman Instrument Design Competition [1], andthe Migrator Synthesizer program constitute a real-worldexample of a low-latency computationally-demanding net-work audio application. The Migrator Synthesizer, origi-nally created in Max/MSP [37], was redesigned and im-plemented for Tessellation to determine how well our OSmeets the requirements of network audio applications (seeSection 4). In this section we describe the components ofthe Migrator Synthesizer program and its implementationon Tessellation OS. Fig. 5 depicts the signal flow betweencomponents of the application.

2 The RAP Service refuses to admit new cells whose resourcerequirements are incompatible with existing obligations to othercells.

4 J. Audio Eng. Soc., Vol. 61, No. 4, 2013 April

Page 5: A Multicore Operating System with QoS Guarantees for Network

PAPERS MULTICORE OS WITH QOS GUARANTEES FOR NETWORK AUDIO APPLICATIONS

Fig. 4. The SLABS multitouch interface.

3.1 The SLABS Multitouch InterfaceThe SLABS interface [35] has 32 pressure-sensitive

touchpads (see Fig. 4(a)). The horizontal and vertical po-sition, as well as pressure of each pad are measured,calibrated, and packetized using low-latency field pro-grammable gate arrays (FPGAs) and broadcasted as 96audio channels at 44.1 kHz in 32-bit resolution via UDPover Ethernet. The bandwidth requirement of the resultingoutput data stream is 137.3 Mbps, or the bit-rate of about100 compact discs played simultaneously.

To enable highly expressive tactile control over the Mi-grator Synthesizer, the position and pressure of the fingerson a SLABS pad must be accurately sampled with a highrate. For this reason the device uses digital audio streamingto transmit the gesture data because it supports a high sam-ple rate and low temporal jitter, whereas using the MIDIprotocol generally limits the sampling rate and introducessample timing uncertainty due to the lack of timestamps.

The SLABS interface can also receive data. Eight audiochannels can be sent from the host to the interface (10.8Mbps), which are accessible via an ADAT lightpipe outletfor external DA conversion, e.g., for headphone monitoring.

Additionally, the Open Sound Control (OSC) protocolcan be used to program a small display and two LEDsassociated with each pad. Processes on the host computercan also be controlled via eight toggles at the top of thepads.

Network Protocol: The SLABS interface uses a custom-made network protocol [8]. It produces one UDP packetevery 45.35 μs. A packet contains 2 temporal frames, eachwith 3 single-precision values for each of the 32 pads, cor-

SLABS interface32 pressure sensitive pads

Computer

Tessellation OS

Network Adapter

Network Service (Cell B)

Music Application (Cell A)

Migrator SynthesizerMigrator SynthesizerMigrator Synthesizer

Mixer

Migrator Synthesizer

32 V

oices

Voice Activation Detection

137.3 Mbps

8 channel audio (ADAT)

10.8 Mbps

DA-Converter

t Output FlowInput Flow

..

Fig. 5. LAN music application: structure and signal flow.

responding to the x-position, y-position, and pressure of thefinger. Each UDP packet sent back to the SLABS containsdata for 32 temporal frames, each consisting of amplitudevalues for the 8 output audio channels.

3.2 The Migrator Synthesizer ProgramThe SLABS interface controls the Migrator Synthesizer

program that runs under Tessellation OS (see Fig. 5). Theprogram instantiates 32 Migrator Synthesizer objects, eachone using 100 sinusoidal oscillators. The oscillators changefrequency in a staggered fashion, with each one migratingevery several seconds. New frequency values are sampledfrom a distribution that is computed by convolving a chosenmicrotonal pitch probability table with a gaussian functionof specified standard deviation.

Each touchpad on the SLABS is used to control one of theMigrator Synthesizer objects, thus allowing independentcontrol of up to 32 polyphonic voices. The y-position ofthe finger on the touchpad is used to select among fourdifferent probability tables assigned to each pad, the x-position is used to set the width of the gaussian functionthat adds randomness, and the pressure is used to modulateamplitude (it is silent when no force is applied).

Implementation: The Migrator Synthesizer was imple-mented in the FAUST environment [27] and exported asC++ code, which was then integrated into our Tessella-tion application program. As shown in Fig. 5, the outputsignals produced by the Migrator Synthesizer objects aremixed by the Mixer object and then sent to the SLABS viathe network service. Also, a simple voice activation, which

J. Audio Eng. Soc., Vol. 61, No. 4, 2013 April 5

Page 6: A Multicore Operating System with QoS Guarantees for Network

COLMENARES ET AL. PAPERS

}

Fig. 6. Response time deadline for the SLABS and measuredresponse time (�t) of the music-application/network-service pair.

detects if a SLABS pad is pressed, ensures that only theMigrator Synthesizer objects associated with active padsare processed.

Within every interval of 0.7256 ms the SLABS interfacesends a series of 16 UDP packets that form a complete in-put data package, as shown in Fig. 6. Once the 16th UDPpacket has arrived, the data gathering phase is completeand the block-wise audio processing phase can start. Sincethe audio processing phase of the current input data pack-age overlaps with the data gathering phase of the next inputpackage, the audio processing of the current package needsto finish before the data gathering phase of the next packagecompletes. Therefore, the overall time for delivering an out-put data package is 1.4521 ms—twice the operation period(0.7256 ms) of the SLABS. However, our deadline must beslightly smaller. The reason is that t0 is the time at which theSLABS sends to the network a UDP packet containing twotemporal frames after they have been digitized. Therefore,our deadline is 1.4059 ms ((64 − 2) samples/44.1k H z).

Given this demanding low-latency requirement and con-sidering the amount of audio data to be processed, boththe Migrator Synthesizer program and the network servicewere deployed in non-multiplexed cells (Cells A and B inFig. 5). Those cells were statically allocated and given ded-icated access to several hardware threads3 in the system.

To further account for the low-latency requirement, weimplemented a custom-made user-level runtime for the Mi-grator Synthesizer program. From hardware threads allo-cated to the cell, the runtime dedicates one hardware threadto continuously handle communication with the networkservice and dynamically assigns the rest of the hardwarethreads for the Migrator Synthesizer objects to run.

The runtime disables preemption such that each MigratorSynthesizer object processes each input data block with-out jitter-inducing, periodic timer interrupts. Timer inter-rupts can introduce variability by executing kernel codeat unpredictable points in the audio processing. Another

3 A hardware thread is a single physical processing engine, i.e.,an entire single-threaded core or one hardware-thread context ina multi-threaded core (e.g., Intel’s Core i7 with hyper-threadingenabled).

effect of timer interrupts is that hardware units that speedup computation by caching memory from previous execu-tions or predicting results of future ones (e.g., CPU’s cache,translation lookaside buffer (TLB), and branch predictors)can become “polluted” by the infrequently executed kernelcode.

4 EXPERIMENTAL EVALUATION

In this section we examine the level of performance iso-lation that Tessellation OS can offer to the real-time net-worked music application presented in the previous section.We also evaluate the ability of Tessellation’s network ser-vice to provide bandwidth guarantees to the application.

We measured the aggregate response time of the mu-sic application and the network service under differentexecution conditions. The response time of the music-application/network-service pair, denoted as �t, was mea-sured in the network driver, as close as possible to thenetwork adapter (see Fig. 5). The network driver is part ofthe network service and runs at user level. As shown inFig. 6, �t is the elapsed time between t1 and t2, where:

� t 1 is the instant at which the driver receives the inter-rupt from the network adapter indicating that the firstUDP packet of a series of sixteen has arrived from theSLABS, and

� t 2 is the instant at which the driver writes the outputpacket, corresponding to the input data, to the networkadapter making it send the packet to the SLABS.

The difference t2 − t1 is a close approximation to theresponse time observed by the SLABS at its network port(i.e., tf − t0) because the computer running Tessellationand the SLABS are the only nodes connected to the gigabitEthernet LAN.

All measurements were taken using a controlled input;i.e., the SLABS interface was always driven with the samepressure input on a fixed set of pads. We chose an inputthat, when running the music application and the networkservice alone, could produce response-time values close to,but below the deadline of 1.4059 ms.

We used an Intel system with two 2.66-GHz Xeon X5550quad-core processors, hyper-threading enabled (i.e., 16hardware threads), and a 1-Gbps Intel Pro/1000 Ethernetnetwork adapter.

4.1 Performance IsolationIn this experiment we measured the aggregate response

time of the music application and the network service whenthe pair ran alone and together with other applications inseparate cells.

Table 1 lists the applications, services, and their hostingcells used in this experiment. The cells were divided intotwo groups. The Group 1 comprised the music applicationin Cell A and the OS services required for its operation;namely, the network service in Cell B and the console ser-vice in Cell C. The cells in Group 1 were statically allocated

6 J. Audio Eng. Soc., Vol. 61, No. 4, 2013 April

Page 7: A Multicore Operating System with QoS Guarantees for Network

PAPERS MULTICORE OS WITH QOS GUARANTEES FOR NETWORK AUDIO APPLICATIONS

Table 1. Applications and services used to evaluate performance isolation.

Cell Application Cell Type Hardware Threads

Group 1 A Music Application Non-multiplexed 4,5,6,7B Network Service Non-multiplexed 1,2,3C Console Service Non-multiplexed 10

Group 2 D Video Player 1 Time-triggered 8E Video Player 2 Event-triggered 9F GUI Service Non-multiplexed 11,12G EP Benchmark Best-effort 8H EP Benchmark Best-effort 9,13I EP Benchmark Best-effort 9,13,14,15

Note: The hardware thread 0 was dedicated to kernel monitoring and was not assigned to any cell.

and given dedicated access to specific hardware threads inthe system. Cell A was assigned two entire CPU cores, eachwith two hardware threads.

The Group 2 included Cells D to I. These cells wereadded to try to interfere with the music application and in-fluence the response times of the application codes runningin Cells A and B. The cells in Group 2 used different multi-plexing policies and hosted non-musical applications. CellD, a time-triggered cell, and Cell E, an event-triggered, eachcontained a video player program that sent 30 frames persecond to the GUI service in Cell F. Cells G, H, and I werebest-effort cells with different hardware-thread counts, andthey continuously ran the embarrassingly parallel (EP) ker-nel from the NAS Parallel Benchmarks [4].

In this experiment only the music application had accessto the network service. Paging4 was not available to anyapplication.

We ran the cells in Group 1 with and without the cellsin Group 2 for three minutes, resulting in about 250,000response-time measurements for each run. For the purposeof this paper we believe this amount of time is sufficient tocharacterize the level of performance isolation that Tessel-lation offers to the music application. (Incidentally, we havepreviously tested the system in an hour-long live demon-stration for its long-term stability.) Before we started themeasurements, a warm-up phase of one second was grantedto the system to ensure that our measurements were unaf-fected by non-deterministic initialization effects related tohardware (e.g., cold caches and branch predictors) and soft-ware (e.g., creation of synthesizer objects).

Fig. 7 shows the histograms and first-order statistics ob-tained from the measured response times. Most important,the measurements indicate that there are no significant dif-ferences in the response times across both scenarios. Theobserved maximum response times are slightly below thedeadline (1.4059 ms). Further, all observed response timesare larger than the lower bound of 0.7256 ms (see Fig. 6)and the mean response times are around 1 ms.

A small difference between Fig. 7(a) and Fig. 7(b) isnoticeable: Compared to the scenario where the cells inGroup 1 were running alone, the scenario with both cell

4 Paging is a memory-management scheme by which a com-puter can store and retrieve data, in blocks called pages, fromsecondary storage (e.g., hard disk drive) for use in main memory.

(a) Cells in Group 1 running alone (0 missed deadlines, max =1336µs, mean = 997.54μs, stdev = 35.11μs).

(b) Cells in Groups 1 and 2 running together (0 missed dead-lines, max = 1405µs, mean = 1024.61μs, stdev = 36.88μs).

Fig. 7. Histograms and first-order statistics for the aggregate re-sponse times of the music application and the network service.

groups exhibits a slightly larger maximum response time(by 69μs) and a slightly longer latency tail. We attribute thisdifference to interference in the shared caches and mem-ory interconnect particularly due to the video player cells’large, streaming video file. Despite this, the mean responsetime stayed within 27μs of the single-cell group experimentand deadlines were made in both experiments. Therefore,with the established hardware partitioning, Tessellation wasable to provide sufficient performance isolation to both our

J. Audio Eng. Soc., Vol. 61, No. 4, 2013 April 7

Page 8: A Multicore Operating System with QoS Guarantees for Network

COLMENARES ET AL. PAPERS

music application and the network service, within the lim-itations of our test hardware platform.

4.2 Network Service’s Bandwidth GuaranteesIn this experiment we measured the aggregate response

time of the music application and the network service whenthey both ran along with an abusive data streaming ap-plication on a separate cell. The abusive application wasdesigned to consume as much available bandwidth as thenetwork service allows, thereby trying to prevent the mu-sic application from using network service’s resources. Theabusive application was hosted in a new cell (Cell X), addedto the Group 1 of our previous experiment (Section 4.1), andno cell in Group 2 was used in this experiment. Cell X wasa non-multiplexed cell assigned hardware thread 14. Nobandwidth reservation was given to Cell X in the networkservice.

We compare two scenarios. In the first scenario, the net-work service provides no guarantees to any application.Under the influence of the abusive application, we expectedthat the aggregate response time would increase. In the sec-ond scenario, the network service guarantees a bandwidthof 240 Mbps to the music application, which would makethe audio processing unaffected by the abusive application.

Fig. 8 shows the histograms and first-order statistics ob-tained from the aggregate response times in both scenarios.It is clearly visible that the aggregate response significantlydiffer. When the network service provided no bandwidthguarantee to the music application, the response time wasseverely deteriorated. The fact that 99.91% of all dead-lines are missed, makes the music application unusable(see Fig. 8(a)).

On the contrary, when the network service guaranteed thespecified bandwidth to the music application, the influenceof the abusive streaming application was barely noticeable(see Fig. 8(b)). The music-application/network-service pairexhibited a behavior that was close to the behavior whenrunning the music application in isolation (Fig. 7). Theresponse-time values were now below the deadline, indi-cating that Tessellation’s network service was able to guar-antee the bandwidth demands of the music application.

We also ran the experiment with the network service pro-viding the music application a bandwidth guarantee of 150Mbps—a value closer to the actual application’s bandwidthrequirement. In this case we observed eight missed dead-lines. These deadline misses happened because the networkservice currently guarantees bandwidth but not latency. Re-serving more bandwidth than required was needed to com-pensate for this.

5 CONCLUDING REMARKS

This paper discussed the advantages of Tessellation OS,an experimental multicore operating system, for guarantee-ing quality of service (QoS) at the edges of the networkaudio chain. Different experiments were conducted using areal-world, resource-demanding network music applicationwithin a LAN environment. We measured the aggregate re-

(a) Network service without bandwidth guarantees(243903 missed deadlines, max = 562898μs, mean =461133.61μs, stdev = 113320.00μs).

(b) Network service with bandwidth guarantee to the mu-sic application (0 missed deadlines, max = 1389μs, mean =983.20μs, stdev = 48.37μs).

Fig. 8. Histograms and first-order statistics for the aggregate re-sponse times of the music application and the network service inpresence of an abusive data streaming application.

sponse times of the audio DSP process and the networkservice within Tessellation under different load conditions.Our results show that Tessellation enables network audioapplications to meet their time requirements. Tessellation’sfeatures, such as performance isolation, customizable user-level schedulers, and a network service able to guaran-tee minimum throughput reservations to data flows, haveproved essential for network audio applications to achievelow-latency audio streaming and processing within com-puter nodes.

For audio applications in wide area networks (WANs),Tessellation OS can play an important role in providingend-to-end latency guarantees when complemented withsuitable network protocols. For that reason, we are inter-ested in evaluating how effective Tessellation would be foraudio applications in a WAN environment. WANs (e.g.,the Internet) often suffer from large and jittery transmis-sion delays. In this case, it might even more importantto have an operating system that minimizes additionaldelays.

8 J. Audio Eng. Soc., Vol. 61, No. 4, 2013 April

Page 9: A Multicore Operating System with QoS Guarantees for Network

PAPERS MULTICORE OS WITH QOS GUARANTEES FOR NETWORK AUDIO APPLICATIONS

As part of our future work we plan to compare the perfor-mance of the Migrator Synthesizer program on Tessellationand other operating systems (e.g., Linux). In addition, weare currently rearchitecting the network service in order toprovide latency guarantees to data flows between networkadapters and client cells.

6 ACKNOWLEDGMENTS

This research was supported by Microsoft (Award#024263), Intel (Award #024894), matching U.C. Discov-ery funding (Award #DIG07-102270), and DOE ASCRFastOS Grant #DE-FG02-08ER25849. Additional sup-port comes from Par Lab affiliates National Instru-ments, NEC, Nokia, NVIDIA, Oracle, and Samsung.Nils Peters is supported by the German Academic Ex-change Service (DAAD). No part of this paper repre-sents the views and opinions of the sponsors mentionedabove.

We thank the other members of the Par Lab for theircollaboration and feedback on the ideas presented in thispaper. Finally, we want to thank the anonymous reviewersfor their valuable comments and suggestions.

7 REFERENCES

[1] The 2009 winner of the Guthman Musical In-strument Competition. http://www.gatech.edu/newsroom/release.html?nid=39716. Accessed: Dec 2012.

[2] lwIP - a lightweight TCP/IP stack. http://savannah.nongnu.org/projects/lwip/. Accessed: Dec 2012.

[3] Nano-X window system. http://microwindows.org/.Accessed: Dec 2012.

[4] NAS parallel benchmarks. http://www.nas.nasa.gov/publications/npb.html. Accessed: Dec 2012.

[5] B. Akesson, K. Goossens, and M. Ringhofer, “Preda-tor: A Predictable SDRAM Memory Controller,” Proc. ofthe 5th IEEE/ACM Int’l Conference on Hardware/SoftwareCodesign and System Synthesis (CODES+ISSS’07),pp. 251-256, Salzburg, Austria (2007).

[6] M. E. Altinsoy, “The Quality of Auditory-TactileVirtual Environments,” J. Audio Eng. Soc., vol. 60, pp. 38–46 (2012 Jan./Feb.).

[7] K. Asanovic, R. Bodik, J. Demmel, T. Keaveny, K.Keutzer, J. Kubiatowicz, N. Morgan, D. Patterson, K. Sen,J. Wawrzynek, D. Wessel, and K. Yelick, “A View of theParallel Computing Landscape,” Communications of theACM, vol. 52, no.10, pp. 56–67 (2009).

[8] R. Avizienis, A. Freed, T. Suzuki, and D. Wessel,“Scalable Connectivity Processor for Computer Music Per-formance Systems,” Proc. of the Int’l Computer Music Con-ference, pp. 523–526, Berlin, Germany (2000).

[9] S. Baruah, J. Goosens, and G. Lipari, “Implement-ing Constant-Bandwidth Servers upon Multiprocessors,”Proc. of the 8th IEEE Real-Time and Embedded Technol-ogy and Applications Symposium (RTAS’02), pp. 154–163,San Jose, CA, USA (2002).

[10] S. Baruah and G. Lipari, “Executing Aperiodic Jobsin a Multiprocessor Constant-Bandwidth Server Implemen-

tation,” Proc. of the 16th Euromicro Conference on Real-Time Systems (ECRTS’04), pp. 109–116, Catania, Italy(2004).

[11] E. Battenberg, A. Freed, and D. Wessel, “Advancesin the Parallelization of Music and Audio Applications,”Proc. of the Int’l Computer Music Conference, New York,USA , pp. 349–352 (2010).

[12] N. Bouillot, E. Cohen, J. R. Cooperstock, A. Floros,N. Fonseca, R. Foss, M. Goodman, J. Grant, K. Gross, S.Harris, B. Harshbarger, J. Heyraud, L. Jonsson, J. Narus,M. Page, T. Snook, A. Tanaka, J. Trieger, and U. Zanghieri,“AES White Paper: Best Practices in Network Audio,”J. Audio Eng. Soc., vol. 57, pp. 729-741 (2009 Sept.).

[13] J. Braasch, N. Peters, and D. L. Valente, “SharingAcoustic Spaces over Telepresence Using Virtual Micro-phone Control,” presented at the 123rd Convention of theAudio Engineering Society (2007), convention paper 7209.

[14] J. A. Colmenares, E. Battenberg, R. Avizienis, I.Saxton, N. Peters, K. Asanovic, J. Kubiatowicz, and D.Wessel, “Real-Time Musical Applications on an Experi-mental Operating System for Multi-Core Processors,” Proc.of the Int’l Computer Music Conference, Huddersfield,England (2011).

[15] J. A. Colmenares, S. Bird, H. Cook, P. Pearce, D.Zhu, J. Shalf, S. Hofmeyr, K. Asanovic, and J. Kubiatow-icz, “Resource Management in the Tessellation ManycoreOS,” Proc. of the 2nd USENIX Workshop on Hot Topics inParallelism (HotPar’10), Berkeley, CA, USA (2010).

[16] D. G. Feitelson and L. Rudolph, “Gang Schedul-ing Performance Benefits for Fine-Grain Synchronization,”J. Parallel and Distributed Computing, vol. 16, pp. 306–318(1992).

[17] G. Friedland, J. Chong, and A. Janin, “A ParallelMeeting Diarist,” Proc. of the Int’l Workshop on SearchingSpontaneous Conversational Speech (SSCS ’10), pp. 57–60,Firenze, Italy (2010).

[18] A. Gulati, A. Merchant, and P. J. Varman,“mClock: Handling throughput Variability for HypervisorIO Scheduling,” Proc. of the 9th USENIX Symposium onOperating Systems Design and Implementation (OSDI’10),pp. 1–7, Vancouver, BC, Canada (2010).

[19] IEEE. Audio/video bridge task group, http://www.ieee802.org/1/pages/avbridges.html. Accessed: Dec 2012.

[20] C. G. Jones, R. Liu, L. Meyerovich, K. Asanovic,and R. Bodik, “Parallelizing the Web Browser,” Proc. ofthe 1st USENIX Workshop on Hot Topics in Parallelism(HotPar’09), Berkeley, CA, USA (2009).

[21] A. Kim, J. A. Colmenares, H. Alkaff, and J. Kubia-towicz, “A Soft Real-Time Parallel GUI Service in Tessel-lation Many-core OS,” Proc. of ISCA 27th Int’l Conferenceon Computers and Their Applications (CATA 2012), LasVegas, Nevada (2012).

[22] J. W. Lee, M. C. Ng, and K. Asanovic, “Globally-Synchronized Frames for Guaranteed Quality-of-Service inOn-Chip Networks,” ACM SIGARCH Computer Architec-ture News, vol. 36, no. 3, pp. 89–100 (2008).

[23] C. L. Liu and J. W. Layland, “Scheduling Algo-rithms for Multiprogramming in a Hard-Real-Time Envi-ronment,” J. ACM, vol. 20, no. 1, pp. 46–61 (1973).

J. Audio Eng. Soc., Vol. 61, No. 4, 2013 April 9

Page 10: A Multicore Operating System with QoS Guarantees for Network

COLMENARES ET AL. PAPERS

[24] R. Liu, K. Klues, S. Bird, S. Hofmeyr, K. Asanovic,and J. Kubiatowicz, “Tessellation: Space-Time Partitioningin a Manycore Client OS,” Proc. of the 1st USENIX Work-shop on Hot Topics in Parallelism (HotPar’09), Berkeley,CA, USA (2009).

[25] L. Luo and M.-Y. Zhu, “Partitioning Based Oper-ating System: A Formal Model,” ACM SIGOPS OperatingSystems Review, vol. 37, no. 3, pp. 23–35 (2003).

[26] R. Obermaisser and B. Leiner, “Temporal andSpatial Partitioning of a Time-Triggered Operating Sys-tem Based on Real-Time Linux,” Proc. of the 11th IEEEInt’l Symposium on Object Oriented Real-Time DistributedComputing (ISORC’08), pp. 429–435, Orlando, Florida,USA (2008).

[27] Y. Orlarey, D. Fober, and S. Letz “An Algebrafor Block Diagram Languages,” Proc. of the Int’l Com-puter Music Conference, pp. 542–547, Gothenburg, Swe-den (2002).

[28] J. Ousterhout, “Scheduling Techniques for Concur-rent Systems,” Proc. of the 3rd Int’l Conference on Dis-tributed Computing Systems (ICDCS’82), pp. 22–30, Mi-ami/Ft. Lauderdale, FL, USA (1982).

[29] M. Paolier, E. Quinones, F. J. Cazorla, G. Bernat,and M. Valero, “Hardware Support for WCET Analysisof Hard Real-Time Multicore Systems,” ACM SIGARCHComputer Architecture News, vol. 37, no. 3, pp. 57–68(2009).

[30] D. Ronken, “Monaural Detection of a Phase Dif-ference between Clicks,” J. Acous. Soc. Am., vol. 47,pp. 1091–1099 (1970).

[31] D. Sanchez and C. Kozyrakis, “Vantage: Scal-able and Efficient Fine-Grain Cache Partitioning,” ACMSIGARCH Computer Architecture News, vol. 39, no. 3,pp. 57–68 (2011).

[32] A. Sawchuk, E. Chew, R. Zimmermann, C. Pa-padopoulos, and C. Kyriakakis, “From Remote MediaImmersion to Distributed Immersive Performance,” Proc.of the ACM SIGMM Workshop on Experiential Telep-resence (ETP’03), pp. 110–120, Berkeley, CA, USA(2003).

[33] W. R. Stevens, B. Fenner, and A. M. Rudoff, UnixNetwork Programming, Volume 1: The Sockets NetworkingAPI, 3rd Edition (Addison-Wesley Professional, 2004).

[34] N. Tsingos, W. Jiang, and I. Williams, “Using Pro-grammable Graphics Hardware for Acoustics and AudioRendering,” J. Audio Eng. Soc., vol. 59, pp. 628–646 (2011Sept.).

[35] D. Wessel, R. Avizienis, A. Freed, and M. Wright,“A Force Sensitive Multi-Touch Array Supporting Mul-tiple 2-D Musical Control Structures,” Proc. of the 7thInt’l Conference on New Interfaces for Musical Ex-pression (NIME’07), pp. 41–45, New York, NY, USA(2007).

[36] D. Wessel and M. Wright, “Problems and Prospectsfor Intimate Musical Control of Computers,” ComputerMusic J., vol. 26, no.3, pp. 11–22 (2002).

[37] D. Zicarelli, “An Extensible Real-Time Signal Pro-cessing Environment for Max,” Proc. of the Int’l Com-puter Music Conference, pp. 463–466, Ann Arbor, MI, USA(1998).

THE AUTHORS

Juan A. Colmenares Nils Peters Gage Eads Ian Saxton

Israel Jacquez John Kubiatowicz David Wessel

Juan A. Colmenares is a staff research scientist inthe Computer Science Laboratory at Samsung Elec-tronics R&D Center in San Jose, California. He is alsoan industrial researcher for Samsung in the UbiquitousSwarm Lab at UC Berkeley. He completed his post-doctoral training in the Parallel Computing Laboratory(Par Lab) at UC Berkeley in 2012. He received a Ph.D.

degree in computer engineering from UC Irvine in 2009.He also obtained an M.S. in applied computing in 2001and a B.S. in electrical engineering in 1997, both fromthe University of Zulia, Venezuela. His research inter-ests include operating systems for many-core architec-tures, real-time distributed computing, and multimediaapplications.

10 J. Audio Eng. Soc., Vol. 61, No. 4, 2013 April

Page 11: A Multicore Operating System with QoS Guarantees for Network

PAPERS MULTICORE OS WITH QOS GUARANTEES FOR NETWORK AUDIO APPLICATIONS

Nils Peters is a postdoctoral fellow at the InternationalComputer Science Institute (ICSI) and the Center for NewMusic and Audio Technologies (CNMAT) at UC Berke-ley, California. He holds a M.Sc. degree in electrical andaudio engineering from the University of Technology inGraz, Austria, in 2005 and a Ph.D. in music technologyfrom McGill University in Montreal, Canada, in 2011. Hehas worked as an audio engineer in the fields of recording,postproduction, and live electronics and is currently work-ing on real-time algorithms for sound-field analysis withlarge scale microphone arrays. He co-develops the open-source media-processing library Jamoma and organizes UCBerkeley’s lecture series on spatial audio technology androom acoustics.

Gage Eads is a Ph.D. student in the Parallel ComputingLab (Par Lab) at UC Berkeley. He received a B.S. de-gree with highest honors in electrical engineering from UTAustin. His research interests include many-core I/O accel-eration, memory system design, and operating systems.

Ian Saxton is a Ph.D. student in music composition atUC Berkeley and researcher at the Center for New Musicand Audio Technologies (CNMAT) and Parallel Comput-ing Lab (Par Lab). He received a B.A. in music with anelectronic music minor from UC Santa Cruz in 2005, anda Masters in computer music from UC San Diego in 2008.His interests include parallel audio scheduling, music pro-gramming languages, live electronic music control, auto-matic music analysis/generation, and playing the drums.

Israel Jacquez received a B.S. in electrical engineeringand computer science from UC Berkeley in 2012 and iscurrently working in a start-up company in San Francisco

with an initial focus on mobile games. He was an under-grad researcher in the Parallel Computing Lab (Par Lab) atUC Berkeley. His interests include compilers and operatingsystems.

John Kubiatowicz received a double B.S. in electrical en-gineering and physics, 1987, M.S. in electrical engineeringand computer science, 1993, and a Ph.D. in electrical engi-neering and computer science as well a Minor in physics,1998, all from M.I.T. He joined the faculty of EECS at UCBerkeley in 1998. Current research interests include thedesign of new operating systems for multicore and many-core systems, with a particular focus on resource allocationand quality of service. Other interests include the design ofextremely-wide area storage utilities (cloud storage) as wellas secure protocols and routing infrastructures that provideprivacy, security, and resistance to denial of service.

David Wessel studied mathematics and experimentalpsychology at the University of Illinois and received a doc-torate in mathematical psychology from Stanford in 1972.His work on the perception and compositional control oftimbre in the early 70s at Michigan State University led toa musical research position at IRCAM in Paris in 1976. In1979 he began reshaping the Pedagogy Department to linkthe scientific and musical sectors of IRCAM. In 1985 heestablished a new IRCAM department devoted to the devel-opment of interactive musical software for personal com-puters. In 1988 he began his current position as Professorof Music at the University of California, Berkeley wherehe is Director of CNMAT. He is particularly interestedin live-performance computer music where improvisationplays an essential role. He has collaborated in performancewith a variety of improvising composers including RoscoeMitchell, Steve Coleman, Ushio Torikai, Thomas Buckner,Vinko Globokar, Jin Hi Kim, Shafqat Ali Khan, and Laeti-tia Sonami has performed throughout the US and Europe.

J. Audio Eng. Soc., Vol. 61, No. 4, 2013 April 11