Linear analysis and optimization of stream programs As more complex DSP algorithms are realized in practice, there is an increasing need for high-level stream abstractions that can be compiled without sacrificing efficiency. Toward this end, we present a set of aggressive optimizations that target linear sections of a stream program. Our input language is StreamIt, which represents programs as a hierarchical graph of autonomous filters. A filter is linear if each of its outputs can be represented as an affine combination of its inputs. Linearity is common in DSP components; examples include FIR filters, expanders, compressors, FFTs and DCTs.We demonstrate that several algorithmic transformations, traditionally hand-tuned by DSP experts, can be completely automated by the compiler. First, we present a linear extraction analysis that automatically detects linear filters from the C-like code in their work function. Then, we give a procedure for combining adjacent linear filters into a single filter, as well as for translating a linear filter to operate in the frequency domain. We also present an optimization selection algorithm, which finds the sequence of combination and frequency transformations that will give the maximal benefit.We have completed a fully-automatic implementation of the above techniques as part of the StreamIt compiler, and we demonstrate a 450% performance improvement over our benchmark suite. Digital computation is a ubiquitous element of modern life. Everything from cell phones to HDTV systems to satellite radios require increasingly sophisticated algorithms for digital signal processing. Optimization is especially important in this domain, as embedded devices commonly have high performance requirements and tight resource constraints. Consequently, there are often two stages to the development process: first, the algorithm is designed and simulated at a high level of abstraction, and second, it is optimized and reimplemented at a low level by an expert DSP programmer. In order to achieve high performance, the DSP programmer needs to take advantage of architecture-specific features and constraints (usually via extensive use of assembly code) as well as global properties of the application that could be exploited to obtain algorithmic speedups. Apart from requiring expert knowledge, this effort is time-consuming, errorprone, and costly, and must be repeated for every change in the target architecture and every adjustment to the highlevel system design. As embedded applications continue to grow in complexity, these factors will become unmanageable. There is a pressing need for high-level DSP abstractions that can be compiled without any performance penalty.. In this paper, we develop a set of optimizations that lower the entry barrier for high-performance stream programming. Our work is done in the context of StreamIt [7, 19] , which is a high-level language for signal processing applications. A program in StreamIt is comprised of a set of concurrently executing filters, each of which contains its own address space and communicates with its neighbors using FIFO queues. Our analysis focuses on filters which are linear: their outputs can be expressed as an affine combination of their inputs. Linear filters are common in DSP applications; examples include FIR filters, expanders, compressors, FFTs and DCTs.. In practice, there are a host of optimizations that are applied to linear portions of a stream graph. In particular, neighboring linear nodes can be combined into one, and large linear nodes can benefit from translation into the frequency domain. However, these optimizations require detailed mathematical analysis and are tedious and complex to implement. They are only beneficial under certain conditions-conditions that might change with the next version of the system, or that might depend on neighboring components that are being written by other developers. To improve the modularity, portability, and extensibility of stream programs, the compiler should be responsible for identifying linear nodes and performing the appropriate optimizations. Toward this end, we make the following contributions: • A linear dataflow analysis that extracts an abstract linear representation from imperative C-like code.. • An automated transformation of neighboring linear nodes into a single collapsed representation.. • An automated translation of linear nodes into the frequency domain.. • An optimization selection algorithm that determines which transformations are most beneficial to apply.. • A fully-automatic implementation of these techniques in the StreamIt compiler, demonstrating an average speedup of 450% and a best-case speedup of 800%. In the rest of this section, we give a motivating example and background information on StreamIt. Then we present our linear node representation (Section 2) and our supporting dataflow analysis (Section 3). Next we describe structural transformations on linear nodes (Section 4), a frequency domain optimization (Section 5) and an optimization selection algorithm (Section 6). Finally, we present results (Section 7), related work (Section 8) and conclusions (Section 9). This paper presents a set of automated analyses for detecting, analyzing, and optimizing linear filters in streaming applications. Though the mathematical optimization of linear filters has been a longtime focus of the DSP community, our techniques are novel in the automated application of these techniques to programs that are written in a flexible and high-level programming language. We demonstrate that using our linear dataflow analysis, linear combination, frequency translation and automated optimization selection we can improve execution speed by an average factor of 450%.. The ominous rift between the design and implementation of signal processing applications is growing by the day. Algorithms are designed at a conceptual level utilizing modular processing blocks that naturally express the computation. However, in order to obtain good performance, each handtuned implementation is forced to disregard the abstraction layers and painstakingly consider specialized whole-program optimizations. The StreamIt project aims to reduce this process to a single stage in which the designers and implementors share a set of high-level abstractions that can be efficiently handled by the compiler.. The linear analysis described in this paper represents a first step toward this goal. By automatically performing linear combination, frequency translation, and optimization selection, it allows programmers to write linear stream operations in a natural and modular fashion without any performance penalty. We have completed a fully automatic implementation of the linear combination, frequency replacement, and optimization selection algorithms described in the previous sections. The implementation is part of the StreamIt compiler, and works for both the uniprocessor and Raw [13] backends. In this section, we evaluate three configurations of linear optimizations for the uniprocessor backend:. • Linear replacement, which transforms maximal linear sections of the stream graph into a single linear node, which we implement as a matrix multiply. For small nodes (less than 256 operations), this takes the form of an unrolled arithmetic expression, whereas for large nodes we implement an indexed matrix multiply that avoids zero entries at the top and bottom of each column.. • Frequency replacement, which transforms maximal linear sections of the stream graph into a single node in the frequency domain. To implement the necessary basis conversions, we use FFTW [5] , which is an adaptive and high-performance FFT library.. • Automatic selection, which employs both of the previous transformations judiciously in order to obtain the maximal benefit. This works according to the algorithm in Section 6.. Below we describe experiments and results that demonstrate substantial performance improvements due to our methods. For full results, stream graphs, and source code, please visit http://cag.lcs.mit.edu/linear/. Several groups are researching strategies for efficient code generation for DSP applications. SPIRAL is a system that generates libraries for signal processing algorithms [8, 9, 4] . Using a feedback-directed search process, DSP transforms are optimized for the underlying architecture. The input language to SPIRAL is SPL [22, 21] , which provides a parameterizable way of expressing matrix computations. Given a matrix representation in SPL, SPIRAL generates formulas that correspond to different factorizations of the matrix. It searches for the most efficient formula using several techniques, including dynamic programming and stochastic evolutionary search.. We consider our work to be complementary to SPIRAL. While SPIRAL starts with a matrix representation in SPL, we start with general StreamIt code and use linear dataflow analysis to extract a matrix representation where possible. Our linear combination rules are distinct from the factorizations of SPIRAL, as StreamIt nodes can peek at items that they do not consume. In the future, SPIRAL could be integrated with StreamIt to optimize a matrix factorization for a given architecture.. The ATLAS project [20] also aims to produce fast libraries for linear algebra manipulations, focusing on adaptive library generation for varying architectures. FFTW [5] is a runtime library of highly optimized FFT's that dynamfrequency replacement caused an internal error in gcc for this program, so we used egcs 2.91 instead.. ically adapt to architectural variations. StreamIt is again complementary to these packages: it allows programmers to interface with them using general user-level code.. ADE (A Design Environment) is a system for specifying, analyzing, and manipulating DSP algorithms [3] . ADE includes a rule-based system that can search for improved arrangements of stream algorithms using extensible transformation rules. However, the system uses predefined signal processing blocks that are specified in mathematical terms, rather than the user-specified imperative code that appears in a StreamIt filter. Moreover, ADE is intended for algorithm exploration, while StreamIt includes support for code generation and whole-program development. In addition to ADE, other work on DSP algorithm development is surveyed in [14] .. Karr [11] and Cousot and Halbwachs [2] describe general methods for detecting linear relationships among program variables. Karr maintains an affine representation (similar to ours) for each program variable, while Cousot and Halbwachs use a polyhedral model in which each dimension corresponds to a program variable. For general programs, the analyses described by these authors is more general than ours. In fact, the novelty of our linear dataflow analysis is in its specialization for the streaming domain. Rather than tracking general relationships, we only track relationships to items on the input tape. This restrictionin combination with the atomic, fine-grained nature of filter work functions-makes it feasible to symbolically execute all loops, thereby obtaining more precise linearity information.. A number of other programming languages are oriented around a notion of a stream; see [17] for a survey. Also note that the "linear data flow analysis" of Ryan [16] is completely unrelated to our work; it aims to do program analysis in linear time.

O B O B O O O O O O B O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O B O B B O B O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O B O B O O O O O O O O B O O O O O O O B O O O O O O O O O O O O O B B O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O B O O O B O O O O O O O O O O O O O O O B O O O O O O O O B O O O B O O B O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O B O O O O B O O O O O O O O O O O O O O O O O B O O O O O O O O O B O O O O O O O O O O O O O O B O O O O O O B O B O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O B O O O O O O O O O O O O B O O O O O O O B O O O O O O O O O O O O O O O O O B I O O O O O O O O B O O O O O O O B O O O O O B O B O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O B O B O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O B O B O O O O O O O O O O O O B O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O B O O O O O O O O O O O O O O O B O O O O B O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O B O B O O O O O B O O O O O O B O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O B O O O O O B O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O B O O O O O O O B O O O O O O O B O O O O O O O O B O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O B O B O O O O O O O O O O O O B O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B B O O O O B O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O B O O O O O O O O O O O O O O O O B O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O B O O O O O O B O O B O O O B O O O O O O O O O O O B B O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O B O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O B B O O O


A first step towards user assisted online social networks The current Online Social Networks' infrastructure is composed by thousands of servers distributed across data-centers spread over several geographical locations. These servers store all the users' information (profile, contacts, contents, etc). Such an infrastructure incurs high operational and maintenance costs. Furthermore, this may threaten the scalability, the reliability, the availability and the privacy of the offered service. On the other hand this centralized approach gives to the OSN provider full control over a huge amount of valuable information. This information constitutes the basis of the OSN provider's business.Most of the storage capacity is dedicated to store the user's content (e.g. photos, videos, etc). We believe that OSN provider does not have strong incentive to dedicate a large part of its infrastructure to store majority part of this content.In this position paper we introduce the concept of user assisted Online Social Network (uaOSN). This novel architecture seeks to distribute the storage load associated to the content (e.g. photos, videos, etc) among the OSN's users. Thus the OSN provider keeps the control on the relevant information while reducing the operational and maintenance costs. We discuss the benefits that this proposal may produce for both, the OSN provider and the users. We also discuss the technical aspects to be considered and compare this solution to other distributed approaches. In the last years Online Social Networks (OSNs) have irrupted in the Internet becoming the most popular applications. For instance, Facebook counts with more than 350M registered users and MySpace has 260M of users. This tremendous success has attracted the interest of the research community that is giving the first steps into the understanding and the improvement of the OSNs.. The current infrastructure of OSNs is composed by dozens of thousands of servers spread across different datacenters in different geographical locations around the globe. The OSNs store everything in this infrastructure: user's profile, user's social contacts, user's content, etc. This gives full control to the OSN provider over precious information about millions of users. This is the basis of its business. On the downside, such a centralized infrastructure has several problems:. • Poor scalability: The larger the number of users and the higher activity of them, the larger the centralized infrastructure has to be.. • High cost: In order to maintain a large number of users and the derived data, the OSN provider needs to set up a large number of servers and datacenters facilities. It is well known that these facilities are becoming more and more expensive due to cooling, electricity and traffic among other factors.. • Single Point of failure: It can be easily a victim of DoS attacks [1] . In addition, storing data exclusively in a single location can lead to information loses [2] .. In this position paper we introduce the concept of user assisted Online Social Networks (uaOSNs). We propose a decentralized storage architecture where the content which is not strictly needed to be possessed by the provider is stored by the users. Since the main functionality of an OSN is allowing the users to exchange information and interact among them, this model seems to be suitable. uaOSN permits to keep (at least) the same level of functionality while limiting the provider's operational and maintenance cost. Furthermore, uaOSN does not affect the business model of OSN providers, because only the least relevant information is distributed.. The rest of the paper is organised as follows. Section 2 presents more in detail difficulties of the current centralised approach of OSN. In Section 3 we introduce the architecture of uaOSN. We present conceptual and technical description of new model and we outline the possible benefits it can bring. Section 4 provides brief information about related work before concluding in Section 5. We have discussed the problem raised from the central nature of current OSNs. We have presented the concept of uaOSNs in which irrelevant content for the OSN provider (e.g. photos or videos) is distributed among the OSN users. We have shown that this architecture can bring improvements both to the OSN providers and end users. Finally we have compared our proposal to other distributed solutions clarifying the differences.. As future work, we aim to validate the claims presented in this position papers with real traces from commercial OSNs. Furthermore We will also work in the implementation of an uaOSN prototype. In this Section we present other distributed OSN approaches and discuss their differences with our uaOSN.. Vis-a-Vis [15] is a framework for decentralized OSN. It is based on the concept of Virtual Individual Server (VIS), this is a personal virtual machine used for managing and storing the personal content of the user. The user's VIS runs within some utility computing infrastructure. Furthermore, the VIS nodes form overlay networks which reflect the users' social connections. The whole system is based on a multi-tier DHT structure. The top level, called meta-group, is used to advertise and look for public groups and all VISs belong to it. Other groups are created also in a DHT-manner and they reflect the social groups from the OSN.. A second work [16] presents a system that deals with users' security and privacy. The system contains three main entities: the matryoshkas, a trusted identification service, and a peer to peer substrate. Each user has an associated matryoshka which is a logical infrastructure of concentric rings where the user is located in the center (core). The innermost ring is formed by those nodes that are trusted by the user, the next one is composed by nodes trusted by the nodes from the inner ring, and so on. The data of the user is stored in the first ring and can be accessed by other users in a privacy-preserving manner. The trusted identification service is responsible for authentication and the peer to peer substrate (e.g. a DHT) provides the basic mechanisms for accessing to user's data.. PeerSoN [17] is another proposal for P2P social networking. It has a similar goal as Vis-a-Vis. In order to address the problem of privacy PeerSoN resigns from a central entity. The mechanism relies on encrypting the users data. Furthermore the system uses a procedure for key distribution and revocation. This architecture makes impossible for any third entity to mine the data or infer either the users behaviour or users relationships.. An interesting concept is presented in [18] . It proposes creating a personal containers (blog, photos) in the cloud. This content can be accessed by different applications which the user is participating e.g. OSNs or video streaming services, etc. Therefore this is a meta-service that could be used by any of the previous proposals.. It is worth noting that all the described systems are primarily focused on privacy preserving. Their aim is to address the concerns related to the fact that OSN providers concentrate a huge amount of personal data of millions of user in one central place. This includes: (i) granting full copyrights to the OSN provider over the content which is upload, (ii) the censorship performed by provider and (iii) possible data disclosures, etc. All the described systems are non-commercial and self-organized social networks. However, these schemes present some withdraws. The most important one is the availability of the data that can be stored in either storage facilities (e.g. Amazon S3 severs) or the users' PCs. The first approach makes the content fully available but incurs in economical costs for the users. Whereas, the second approach requires replication techniques to guarantee availability what incurs in network costs.. On the other hand, our approach does not exclude the OSN provider from the picture. Instead of decentralizing the full system, we propose to distribute only the storage of the heavy content (not relevant for the business model of the OSN provider) that produces high infrastructural and operational costs. In other words, our approach allows to significantly cut the opex of the company without loosing any functionality. It also gives benefits to the users such as a better availability and reliability of the service. Furthermore uaOSN is also less complex than the previous systems since many important operations (creating new user, logging, granting and revoking rights) can be easily performed with the help of a trusted central entity.

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Quantum speed-up for unsupervised learning We show how the quantum paradigm can be used to speed up unsupervised learning algorithms. More precisely, we explain how it is possible to accelerate learning algorithms by quantizing some of their subroutines. Quantization refers to the process that partially or totally converts a classical algorithm to its quantum counterpart in order to improve performance. In particular, we give quantized versions of clustering via minimum spanning tree, divisive clustering and k-medians that are faster than their classical analogues. We also describe a distributed version of k-medians that allows the participants to save on the global communication cost of the protocol compared to the classical version. Finally, we design quantum algorithms for the construction of a neighbourhood graph, outlier detection as well as smart initialization of the cluster centres.

O O O B I O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Single view reflectance capture using multiplexed scattering and time-of-flight imaging Acquiring material properties of real-world materials has a long and rich history in computer graphics; existing techniques directly image the sample being measured to acquire different properties including tabulated reflectance functions, spatially varying reflectances, and parametric models (see [Weyrich et al. 2009 ] for a survey of state-of-the-art techniques.). These reflectance functions, are necessary for relighting, material editing, and rendering, as well as for matching and material identification.. In this paper, we present a new acquisition approach to reflectance measurement. Our approach is unique in two ways: we exploit ultra-fast time-of-flight (ToF) imaging to achieve rapid acquisition of materials; and we use indirect observation to acquire many samples simultaneously, and in fact, even permit around-the-corner measurement of reflectance properties. The key insight of this research is to exploit ultra-fast imaging to measure individual light transport paths, based on the distance traveled at the speed of light. This capability uniquely lets us separately measure the direct (0bounce), 1-bounce, 2-bounce, and more, light paths; in comparison, traditional approaches use controlled laboratory settings to minimize the impact of multi-bounce light transport, or must explicitly separate direct and indirect lighting from all bounces.. We make the following contributions: a) We present a new technique for reflectance acquisition by separating light multiplexed along different transport paths. Our approach uses indirect viewing with 3-bounce scattering coupled with time-of-flight imaging to capture reflectances. Our proof-ofconcept system demonstrates first steps towards rapid material acquisition. b) We exploit space-time images captured by a time-of-flight camera, that image different light transport paths over time. The inherent challenge is to decode material measurements in the presence of mixing over angular and spatial dimensions (we call this "entanglement"), where light arrives along multiple paths at the same point at the same time.. c) When there is no entanglement, it is possible to directly pick out the specular peak from streak images, enabling easy measurement of a material's gloss parameters. In the presence of entanglement, we show how fitting parametric models to our data successfully disentangles measurements. d) Using time-of-flight (ToF) principles and indirect measurement, ours is the first solution to rapidly and remotely recover reflectance, even when the surface is not directly visible (around-the-corner). To the best of our knowledge this is the first approach to use light transport measurements in this manner. Our approach allows for remote reflectance capture without having to be close, or in contact, with the target material. No special instrumentation of the target material or scene is required.. There are several limitations to the current work. The acquisition is limited to a subset of the 4D space of a reflectance function expressed via lower-order parametric fits. The signal to noise ratio is not very high because the energy received after three bounces can be low. There are limits to the spatial and temporal resolution of the device, thus limiting the size of patches and the maximum sharpness of the reflectance function. For simplicity, we have assumed that the source and receiver surfaces (left and right walls) have a known diffuse reflectance; though this is not a fundamental limitation. Currently we use only a single wavelength laser, due to cost reasons, but getting lasers with different wavelength would permit spectral measurements.. Acquiring material properties enables a range of applications including image relighting, material editing, and material classification. We expect that improvements in laser technologies and timeresolved imaging will improve the stability, efficiency, and portability of this approach. We believe this design could in the future enable rapid, "in-the-wild" measurement of real-world scenes, without instrumentation. Nicodemus et al. [1977] introduced the Bidirectional Reflectance Distribution Function (BRDF), which characterizes light reflection from surfaces. BRDF acquisition has received much attention with efforts to acquire isotropic and anisotropic BRDFs, and spatially varying BRDFs and BTFs (bidirectional texture functions) [Ward 1992; Marschner et al. 1999; Dana et al. 1999; Lensch et al. 2001; Lensch et al. 2003; Matusik et al. 2003; Ngan et al. 2005; Lawrence et al. 2006; Ghosh et al. 2009; Ghosh et al. 2010a; Dong et al. 2010; Wang et al. 2009 ]. These acquisition processes are often lengthy, requiring extensive laboratory settings with calibration, and hours or even days of acquisition. Weyrich et al. [2009] present a detailed survey of the state of the art, and introduce a taxonomy of six major designs for material acquisition. In this work, we have demonstrated a high speed photography device to acquire segmented scene reflectances using indirect reflections. We have identified the underlying constraints in using timeof-flight capture, including entanglement of light paths with the same path length. We demonstrate disentanglement for several patches, on the order of tens, by fitting to low dimensional parametric models.. While fast and smaller solid state lasers are coming, merging them with fast imaging devices is a clear logical step. We believe that this approach acquisition has potential to enable fast, portable, and remote BRDF capture devices. Without the need to instrument a scene, our work may spur applications like real-world material classification, real-time material editing, and relighting. Our approach can also be used when capturing complete BRDFs is not the ultimate goal but sampling a part of it for material detection and classification can suffice. In addition, around the corner recovery of material properties can enable radical applications, e.g., recovering malignant growth in endoscopy beyond the reach of a camera. Our approach also fits in the general spririt of computational photography to allow one to capture meaningful properties from a single camera viewpoint and then allow powerful post-capture operations, in this case to relight or edit materials. Our single-view point approach exploits the temporal dimension, but it introduces traditional problems of time-of-flight cameras in space-time resolution, signal to noise ratio and dynamic range.. Limited angular sampling: In a closed room, one can theoretically sample all the pairs of incoming and outgoing directions from an object point. In practice, we can sample only a subset of all half angles as the coverage is dependent on the field of view of the camera. Despite these limited angles, a 3-parameter BRDF model can be estimated. We also rely on the friendly reflectances of the sources and receivers, though this is not a fundamental limitation.. Space-time resolution: Our at-a-distance capture mechanism means that we cannot resolve small features with varying BRDF or surface normals. So our approach is suitable for coarsely segmented reflectance patches. Surfaces with rich surface details can be acquired accurately to the limit of the spatio-temporal resolution of the ToF device.. Time resolution limits our ability to perform linear inversion. Currently our camera only captures one spatial dimension, however, we can scan the laser in two dimensions over the scene to increase the sampling range of angles, and further sweep the camera.. Color: Since the laser operates at a single wavelength our images are monochrome and taken in the near infrared. Colored images could be taken with a white light supercontinuum source, a set of 3 lasers at different colors, or a tunable optical parametric oscillator.. Signal to noise ratio and capture time: The theoretical signal to noise ratio (SNR) of the combined streak camera system is about 1000:1. A common way to improve the SNR by several orders of magnitude is to bundle the same laser power into fewer pulses at a t j lower repetition rate but with the same pulse length.. Our acquisition time of 10-15 seconds per streak camera image is a result of our current hardware, which averages over a large number of frames to improve SNR. A commercially available laser with pulse energy of about 1 mJ could reduce the acquisition time to nanoseconds, while offering better SNR as well.. Dynamic range: Capturing specular peaks and weak diffuse reflections in a single photo is limited due to the camera dynamic range. We partially overcome this by using two different exposure photos.. Acquisition in the presence of ambient light: The time-of-flight cameras are well suited for "in-the-wild" acquisition in the presence of ambient light. Most ambient light is never detected by the sensor because of the short capture window. Even highly sensitive photon counting systems use these techniques to operate in daylight and over hundreds of thousands of kilometers; for example, laser links from Earth to the Moon and Mars, and commercial airborne LIDAR systems [Degnan 2002; Warburton et al. 2007] .. Portability: While ultra-fast lasers have not yet reached a state of maturity to make them portable, this approach shows promise in creating portable and compact devices in the future. Our system can be extended for usage in unstructured environments with arbitrary geometry and lighting. Moreover, our algorithm in itself is not limited to a particular geometric configuration.. Laser speckle: Imaging devices using coherent light often suffer from laser specle noise. The laser coherence is, however, not maintained in multiple diffuse bounces. When the laser light returns to the camera after two or three bounces, it is no longer coherent and laser speckle is not observed.. Our work uniquely combines cutting edge research in ultra-fast optics with emerging topics in computer graphics. Our computational approach has been validated, but our physical prototype is a modification of electro-optic hardware which is expensive, currently nonportable, and may take years to become practical. But there are no specific fundamental challenges to improve these systems. We now present the results of our time-of-flight reflectance measurement system. We first evaluate our results using a simulation of the device, to focus on demonstrating its capabilities with a good hardware implementation, and to validate against ground truth values. Finally we demonstrate acquisition using our hardware setup.. We simulate two scenarios using this setup: single patch and multiple patch. We choose nine materials from the database by Ngan et al [2005] to represent a wide variety of reflectances. We simulate the three different channels separately using the corresponding parameters. The first scenario contains a single unit-area (1cm 2 ) patch placed on P. The second scenario simulates a twodimensional grid of nine patches arranged in a 3 × 3 configuration. Capturing BRDFs requires measuring a large number of lightingviewing combinations for the material. To decrease acquisition costs, many techniques focus on matching to parametric models (e.g., [Sato et al. 1997; Yu et al. 1999; Lensch et al. 2001; McAllister 2002; Gardner et al. 2003; Lensch et al. 2003; Goldman et al. 2010] ). Various approaches decrease acquisition costs and increase coverage by exploiting properties of BRDFs including reciprocity, separability, spatial smoothness, and compressibility [Zickler et al. 2005; Sen et al. 2005; Garg et al. 2006; Wang et al. 2008; Dong et al. 2010] . Lighting configurations and variations have been considered including polarization and structured illumination [Wenger et al. 2005; Sen et al. 2005; Ma et al. 2007; Ghosh et al. 2010b ].. Most BRDF techniques directly, or indirectly through a mirror surface [Weyrich et al. 2009 ], view and image the material sample with some notable exceptions [Han and Perlin 2003; Hawkins et al. 2005; Kuthirummal and Nayar 2006] . Hawkins et al. [2005] developed the dual light stage, and imaged a diffuse environment to increase angular measurements.. There has been a long line of research in computer vision in modeling interreflections to accurately model shape and reflectance [Forsyth and Zisserman 1990; Nayar et al. 1991 ]. Recently there has been interest in recovering scene properties such as geometry and albedo from multiple bounces of light Seitz et al. 2005; Sen et al. 2005; Kirmani et al. 2009; Liu et al. 2010; Bai et al. 2010] , and also on recovering shape and material simultaneously [Holroyd et al. 2008] .. In contrast to prior techniques we do not directly image the surface sample, but rather, indirectly image a diffuse surface and use timeof-flight principles to detect and measure all the bounces of light arriving at the diffuse surface, after interacting with the samples we want to measure. This approach enables rapid (on the order of seconds) acquisition of reflectances of multiple patches (tens of materials) simultaneously, over a range of angular measurements. Modifying existing time-of-flight (ToF) cameras to report a full time profile with sufficient SNR for our purpose is quite challenging. Our emphasis in this paper is on the computational and al-

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Continuous collision detection for articulated models using Taylor models and temporal culling We present a fast continuous collision detection (CCD) algorithm for articulated models using Taylor models and temporal culling. Our algorithm is a generalization of conservative advancement (CA) from convex models [Mirtich 1996 ] to articulated models with non-convex links. Given the initial and final configurations of a moving articulated model, our algorithm creates a continuous motion with constant translational and rotational velocities for each link, and checks for interferences between the articulated model under continuous motion and other models in the environment and for self-collisions. If collisions occur, our algorithm reports the first time of contact (TOC) as well as collision witness features. We have implemented our CCD algorithm and applied it to several challenging scenarios including locomotion generation, articulated-body dynamics and character motion planning. Our algorithm can perform CCDs including self-collision detection for articulated models consisting of many links and tens of thousands of triangles in 1.22 ms on average running on a 3.6 GHz Pentium 4 PC. This is an improvement on the performance of prior algorithms of more than an order of magnitude. Collision detection (CD) is the problem of checking for possible interferences between geometric models moving in space. In computer graphics, non-penetration is an important constraint in making objects look physically believable and CD plays a crucial role in enforcing this constraint. Besides computer graphics, CD also has many applications in other fields such as robotics, geometric modeling, human computer interfaces, and virtual reality, that involve non-penetration constraints. As a result, CD has been extensively studied in these fields over the past two decades and is typically considered to be a mature technology, with robust implementations available for certain types of objects (e.g., rigid objects). However, most of the CD techniques developed so far are by nature discrete, in the sense that these techniques only detect interferences between static models with fixed spatial configurations. As objects move over some time interval, a simple heuristic can detect collisions by checking for intersections at some fixed times during that interval, but it cannot actually guarantee the non-penetration of moving objects. In interactive applications such as computer games, severe side-effects may be caused by a rapidly moving object momentarily passing through a wall or a door.. Recently, continuous collision detection (CCD) has received a lot of attention from different research communities because it offers robust handling of non-penetration constraints for rigid models. These include time of contact (TOC) computations for impulsebased dynamics [Mirtich 1996 ], constraint-based dynamics [Redon et al. 2002] , god-object computation in 6-DOF haptic rendering [Ortega et al. 2006] , local planning in sampling-based motion planning [Schwarzer et al. 2002; Redon and Lin 2005] , avatar interaction in virtual reality environments [Redon et al. 2004a ] and game physics engines [Ageia 2006; Havok 2006; Coumans 2006] . Despite the increasing demand for CCD, however, its use has been limited since it typically requires higher computational costs than discrete collision detection, particularly for articulated models.. Main Results: In this paper, we introduce a novel, efficient CCD algorithm for articulated models which takes into account the continuous motion of objects, and reports all possible interferences (see Fig. 1 ). Furthermore, if collisions do occur, we can determine their first time of contact (TOC) and report the colliding features (vertex/face or edge/edge contacts), also known as the contact manifold or collision witness features. Our CCD algorithm is a generalization of conservative advancement (CA) [Mirtich 1996; Mirtich 2000 ] to articulated models and consists of one preprocessing step and two run-time steps: (1) preprocessed link-level bounding volume hierar-chy (BVH) construction, (2) link-level spatial culling using Taylor models and a dynamic BVH and (3) exact contact determination using CA and temporal culling. In particular, our CCD algorithm has the following novel aspects:. • Link-level spatial culling is based on dynamic BVH construction and culling. An efficient BVH using axis-aligned bounding boxes (AABBs) is constructed using Taylor models, a generalization of interval arithmetic (Sec. 5).. • Given a continuous motion of an articulated body with constant angular and translational velocities for each link, we provide an efficient, recursive method to calculate a tight upper bound on the motion. This bound serves as the basis on which to employ CA for exact contact determination (Sec. 6).. • In order to alleviate the problem of quadratic complexity of performing CAs for all possible link combinations, we propose a novel sorting scheme based on times of contact. In practice, this scheme drastically reduces the complexity to a few pairs of links (Sec. 7).. • Our algorithm handles CCD between different articulated models as well as between elements of the same model (self-CCD). Moreover, our algorithm fully utilizes well-studied, fast discrete CD techniques such as [Ehmann and Lin 2001 ] to achieve highly interactive performance; e.g., 1.22 ms for an articulated model consisting of 20K triangles and 15 links against an environment consisting of 101K triangles. In our benchmarks, our algorithm outperforms existing CCD algorithms by more than an order of magnitude (Sec. 8). We have presented a novel continuous collision detection algorithm for articulated models. In essence, it consists of three steps: preprocessed bounding-volume hierarchy construction, dynamic BVH culling based on Taylor models, and conservative advancement using temporal culling. Our algorithm is very fast, and we have applied it to different applications such as articulated-body dynamics and motion planning for virtual characters.. Limitations Our current implementation requires 2-manifold, polyhedral models, even though the main idea is also applicable to polygonal soup models. Moreover, the bottleneck in our algorithm is the distance calculation based on convex decomposition.. Future work There are many avenues for future work. Since our algorithm is fast, a rapid prototyping application based on user interaction, like [Redon et al. 2002] , is readily implementable. Our algorithm is also suitable for 6-DOF haptics, which also requires fast update rates. We would like to investigate the possibility of extending our algorithm to deformable models such as cloth or hair. Another possible future work may be to extend our algorithm to handle articulated models with kinematics loops. Using the walking mannequin benchmark (Fig. 7(a) ), we compare the performance of our algorithm (Top) against that of ARTICU-LATE [Redon et al. 2004b ] (Bottom). For this comparison, we disable self-collision since ARTICULATE do not implement such a case. The average CCD timing for ours is 0.26 ms whereas ARTIC-ULATE takes 3.92 ms. The average TOC computation for ours is 3.1 ms and that of ARTICULATE is 56.44 ms. We observe 15∼17 times performance improvement of ours over ARTICULATE. Most prior work on collision detection has been focused on discrete algorithms. We briefly review work relevant to our algorithm including other known CCD methods and interval arithmetic.

B I I O B I O O O O O O O O O O B I I O O O B I O O O O O O O O O O O O B I O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O B I O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Lower bounds for linear locally decodable codes and private information retrieval We prove that if a linear error-correcting code C: {0, 1}/sup n/ /spl rarr/ {0, 1}/sup m/ is such that a bit of the message can be probabilistically reconstructed by looking at two entries of a corrupted codeword, then m = 2/sup /spl Omega/(n)/. We also present several extensions of this result. We show a reduction from the complexity, of one-round, information-theoretic private information retrieval systems (with two servers) to locally decodable codes, and conclude that if all the servers' answers are linear combinations of the database content, then t = /spl Omega/(n/2/sup a/), where t is the length of the user's query and a is the length of the servers' answers. Actually, 2/sup a/ can be replaced by O(a/sup k/), where k is the number of bit locations in the answer that are actually inspected in the reconstruction. This paper is concerned with two related notions. The first notion is that of locally decodable codes (LDC), which are error-correcting codes that allow recovery of individual information bits based on a few (randomly selected) codeword bits. The second notion is that of private information retrieval (PIR) schemes, which are protocols allowing users to retrieve desired data items from several (non-colluding) servers without yielding any information to any individual server. The relation between these notions has been observed by some researchers before, and is further established in this paper.. The study of LDCs was initiated by Katz and Trevisan [6] , who established super-linear (but at most quadratic) lower bounds on the length of codes that allow recovery based on schulman@caltech.edu. x Computer Science Division, University of California, Berkeley. Email: luca@eecs.berkeley.edu a constant number of bits. In contrast, the best known constructions of LDCs (supporting such efficient recovery) have sub-exponential length. This leaves a huge gap between the known lower and upper bounds, and an important research goal is to try to close this gap. We take a first step in this direction by closing the gap (via improved lower bounds) for the special case of linear LDCs in which recovery is based on two bits. The study of PIR schemes was initiated by Chor, Goldreich, Kushilevitz and Sudan [4] , who presented (among other schemes) a one-round, 2-server PIR scheme of communication complexity O(n 1=3 ). The question of whether their (2-server) PIR scheme has the lowest communication complexity possible has been open since. We present several results that are related to this question, where all our results relate to the special case of one-round, 2-server PIR schemes in which the servers' answers are always linear combinations of the data bits.

B I O O B I I O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I I O O O B I O O O O O O O O O O O O O O O O O O O O O B I I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Primal-dual algorithms for deterministic inventory problems We consider several classical models in deterministic inventory theory: the single-item lot-sizing problem, the joint replenishment problem, and the multi-stage assembly problem. These inventory models have been studied extensively, and play a fundamental role in broader planning issues, such as the management of supply chains.We shall give a novel primal-dual framework for designing algorithms for these models that significantly improve known results in several ways: the performance guarantees for the quality of the solutions improve on or match previously known results; the performance guarantees hold under much more general assumptions about the structure of the costs, and the algorithms and their analysis are significantly simpler than previous known results. Finally, our primal-dual framework departs from the structure of previously studied primal-dual approximation algorithms in significant ways, and we believe that our approach may find application in other settings. We provide 2-approximation algorithms for the joint replenishment problem and for the assembly problem, and solve the single-item lot-sizing problem to optimality. The results for the joint replenishment and the lot-sizing problems also hold for their generalizations with back orders allowed. As a byproduct of our work, we prove known and new upper bounds on the integrality gap of the LP relaxations for these problems. In this paper, we consider several classical models in deterministic inventory theory: the single-item lot-sizing problem, the joint replenishment problem (JRP) and the multistage assembly problem. These inventory models have been studied extensively over the years, in a number of different settings, and play a fundamental role in broader planning issues, such as the management of supply chains (see, e.g., [3, 12] ). We shall consider the variants in which there is a discrete notion of time with a finite planning horizon, and the demand is deterministic (known in advance) but dynamic, i.e., it varies over the planning horizon.. Each of the inventory models that we consider has the following characteristics. There are N commodities (or equivalently, items) that are needed over a planning horizon consisting of T time periods; for each time period and each commodity, there is a demand for a specified number of units of that commodity. To satisfy these demands, an order may be placed in each time period. For each commodity i ordered, a fixed ordering cost Ki is incurred, which is independent of the number of units ordered from that commodity. The order placed in time period t may be used to satisfy demand in time period t or any subsequent point in time. In addition, the demand in time period t must be satisfied completely by orders that have been placed no later than time period t. (In the inventory literature, these assumptions are usually referred to as "neither back orders nor lost sales are allowed".) Since the cost of ordering a commodity is independent of the number of units ordered, there is an incentive to place large orders, to meet the demand not just for the current time period, but for subsequent time periods as well. This is balanced by a cost incurred for holding inventory over time periods. We will let h i st denote this holding cost, that is, the cost incurred by ordering one unit of inventory in period s, and using it to meet the demand for item i in period t. We will assume that h i st is non-negative and, for each (i, t), is a non-increasing function of s. (Note that in particular, we do not require subadditivity; we could have that h i rt > h i rs + h i st for some r < s < t.) The goal is to find a policy of orders that satisfies all demands on time and minimizes the overall holding and ordering cost.. The details of the three inventory models are as follows. In the single-item lot-sizing problem, we have a single item (N = 1) with given demands over T time periods (d1, .., dT ). In the joint replenishment problem we have N commodities, where for each commodity i = 1, . . . , N, and for each time period t = 1, . . . , T , there is a specified non-negative demand dit. In addition to the item ordering costs, Ki, i = 1, . . . , N, any order incurs what we call a joint ordering cost K0, independent of the (nonempty) subset of commodities that are included in the order (and again, independent of the (positive) number of units for each commodity included). The joint ordering cost creates a dependency between the different commodities and complicates the structure of the optimal policy. The holding cost follows the same structure described above.. In the assembly problem, we have a somewhat more involved structure. As part of the input, we also specify a rooted directed in-tree, where each node in the tree corresponds to an item, and we assume that the items are indexed so that i > j for each edge (i, j) in the tree. Node (or item) 1, the root of the tree, is facing external demands over T time periods (d1, .., dT ). A unit of item i is assembled from one unit of each of its predecessor items in the tree. Thus, any unit of item 1 consists of one unit of each of the other items. We again have an ordering cost and holding cost for each item.. We note that the way we model the holding cost is much more general than the most common setting, in which each item i has a linear holding cost, so that the cost of holding one unit from time period s to time period t is equal to (t − s)hi, for some choice of hi > 0 (or to È t l=s h i l in the more general case). By allowing the more general structure described above, we can capture other important phenomena, such as perishable goods, where the cost of holding an item longer than a specified interval is essentially infinite. The strength of the general holding cost structure is demonstrated in Section 4, where we show how to apply the algorithm to the more general JRP model with backorders. As for the ordering cost, we note that our algorithms are applicable also in the presence of time dependent cost parameters as will be specified later on. Furthermore, in addition to the (fixed) ordering cost that is independent of the order size, one can incorporate a per-unit ordering cost into the holding cost term (as long as we preserve the monotonicity).. In this paper, we describe a unified novel primal-dual algorithmic framework that provides optimal and near-optimal solutions to the three inventory models described above. Our main result is a 2-approximation algorithm for the joint replenishment problem. By this we mean that for any instance of the problem, our algorithm computes a feasible solution in polynomial-time, with cost that is guaranteed to be no more than twice the optimal cost. The joint replenishment problem is NP-hard [2] , but it can be solved in polynomial-time by dynamic programming for a fixed number of commodities, or for a fixed number of time periods [27, 25, 15] , (by fixing the times at which joint orders are placed the problem decomposes by item). LP-based techniques have not previously played a significant role in the design of approximation algorithms for NP-hard deterministic inventory problems with constant performance guarantee. LP-rounding was applied to a more general problem by Shen, Simchi-Levi, and Teo [22] , but this yielded a guarantee of only O(log N + log T ). This absence of results is particularly surprising in light of the fact that it has long been understood that these problems admit integer programming formulations with strong linear programming relaxations, i.e., that provide tight lower bounds (see, e.g., [13, 18, 19] ). These formulations are closely related to formulations that have been studied for the facility location problem, which has also been a source of intense study for approximation algorithms. Our performance guarantee improves significantly on the results of Joneja [14] , who only considered the case where all the cost parameters are fixed over time. His paper claims a 3-approximation algorithm for this problem, but it has been pointed out that the proof is flawed [24] . A somewhat different analysis yields a performance guarantee of 5 [17] . Federgrun and Tzur [9] proposed an interesting dynamic programming-based heuristic for the joint replenishment problem, but they assume that cost and demand parameters are bounded by constants.. The single-item lot-sizing problem was shown to be solvable in polynomial time by dynamic programming in the landmark paper of Wagner & Within [26] . Furthermore, Krarup & Bilde [16] showed, in this case, that the facility location-inspired LP has integer optima by means of a primal-dual algorithm, and Bárány. Van Roy, and Wolsey [4] gave yet another proof of this by means of an explicitly generated pair of primal and dual optima (that are computed, ironically, via a dynamic programming computation). Finally, Bertsimas, Teo and Vohra [5] gave a proof, which is based on LP rounding. If we consider our joint replenishment algorithm as applied to the special case of the singleitem lot-sizing problem (where, since there is only one item, one can merge the joint ordering cost and the individual item ordering cost into one new ordering cost), then we obtain a new, extremely simple, primal-dual optimization algorithm that also proves the integrality of this LP formulation.. Finally, with some modifications, our primal-dual algorithm can also be applied to the assembly problem to yield a 2-approximation algorithm. Here, we achieve the same approximation ratio as Roundy [20] , who gave a 2-approximation algorithm (again for the case where all cost parameters are fixed over time) using a non-linear relaxation and ideas borrowed from continuous-time lot-sizing problems. Although we only match the previous performance guarantee, our approach is much simpler, and it yields the performance guarantee under a much more general cost structure. In particular, under our assumptions on the cost structure, it is easy to show that the assembly problem is NP-hard by a reduction from the joint replenishment problem. However, for the variant of the problem considered by Roundy, it is still not known whether it is NP-hard or not [6] .. As a byproduct of our work, we prove upper bounds on the integrality gap of the corresponding LP relaxations, the worst-case ratio between the optimal integer and fractional values; for both the JRP and the assembly problem, we prove an upper bound of 2. In [21] , we give a family of instances of the JRP, for which the integrality gap is asymptotically 1.21.. To understand the relationship between these inventory models and facility location problems, one can view placing an order as opening a facility; the demand points that this order serves corresponds to demand points that are served by the open facility. Although these two classes of problems are related, there are also fundamental distinctions between them. For one, the distances implied by this facility location view of inventory problems is asymmetric and does not satisfy the triangle inequality. For facility location problems, the versions with asymmetric cost metric do not admit constant performance guarantee approximation algorithms (see, e.g., [1, 7] ), and so it is particularly interesting that the additional structure in these inventory problems is sufficient to obtain good approximation algorithms. Furthermore, we are interested in multi-commodity models; there has been recent work that considers multi-commodity facility location problems but, of course, with a symmetric cost metric [23] .. We note that our algorithms have their intellectual roots in the seminal paper of Jain & Vazirani [11] , which gives a primal-dual approximation algorithm for the uncapacitated facility location problem. Nonetheless our algorithms depart from their approach in rather significant ways, as we shall describe in detail in the next section. We believe that this new approach may find applications in other settings.. The rest of the paper is organized in the following way. In Section 2 we describe the generic primal-dual algorithm focusing on the JRP case. Then in Section 3 we first consider the lot-sizing problem as a special case of the JRP and show that the algorithm provides an optimal solution to this special case. In Section 4 we complete the presentation of the algorithm for the JRP case and describe the worst case analysis. We then show how to extend the algorithm for the JRP to the more general case in which back orders are allowed. In Section 5, we describe the modifications in the algorithm and the analysis for the assembly problem. We conclude with some interesting open questions. In this paper we have shown a general algorithmic framework to generate optimal and near-optimal solutions to a class of classical deterministic inventory models.. Although the method is based on LP relaxations, our approximation algorithms do not require the LP's to be solved, but are used only in the analysis of the algorithms. The algorithms are clearly polynomial-time, but there is still work to do so as to get the most efficient implementations. We believe that it would be interesting to test the typical qual-ity of the solutions that our algorithms generate on different inputs and compare them to other known heuristics.. A very interesting theoretical open question is related to the approximability of the JRP. The problem is NP-hard, but we know of no approximability hardness result: one can not even exclude the existence of a polynomial-time approximation scheme (i.e., one might be able to design a ρ−approximation algorithm for any ρ > 1).. In recent related work, we have considered the one-warehouse multi-retailer problem, which is a generalization of the joint replenishment problem. The essential difference between these two problems is that the N items are each associated with a specific retailer, the joint ordering cost is incurred when a central warehouse orders from its supplier, the item ordering cost is incurred when its retailer orders from the warehouse, and, most importantly, there are separate holding costs associated with holding the commodity at the warehouse and the retailer. Using an LP rounding technique, we have obtained the first constant-factor approximation algorithm for this well-studied problem.. A full version of this extended abstract is available at http://www.orie.cornell.edu/ levi/publications.html.

B I O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O B I O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Classification of Whist Tournaments with up to 12 Players A v-player whist tournament Wh(v) is a schedule of games, each involving two players opposing two others. Every round, the players are partitioned into games, with at most one player left over. Each player partners every other player exactly once and opposes every other player exactly twice during the tournament. Directed whist tournaments DWh(v), and triplewhist tournaments TWh(v), are Wh(v) with certain additional requirements. In this work the nonisomorphic Wh(v), DWh(v), and TWh(v) are enumerated for v 6 12. We ÿnd an apparently new Wh(9) and establish that there exists no DWh(12)-and thereby no (12; 4; 1)-RPMD-nor a TWh(12). ? A v-player whist tournament Wh(v) is a schedule of games, where in each round the v players are partitioned into games of four players each with at most one player left over. All pairs of players must play in the same game exactly three times during the tournament. Additionally, the order of the players in a game is relevant: a whist game is a game of four ordered players (c 1 ; c 2 ; c 3 ; c 4 ). It is convenient to interpret the tuple as listing, in order, the player sitting on the north, east, south, and west side of the playing table. The unordered pairs {c 1 ; c 3 } and {c 2 ; c 4 } are partners. In a Wh(v), of the three times a pair of players plays in the same game, the players must be partners exactly once.. A directed whist tournament DWh(v) is a Wh(v) with the additional condition that for any pair of players p 1 and p 2 , the player p 2 must play once as p 1 's left-hand opponent and once as p 1 's right-hand opponent. We say that each whist game (c 1 ; c 2 ; c 3 ; c 4 ) contains the ordered pairs of players (c 1 ; c 2 ), (c 2 ; c 3 ), (c 3 ; c 4 ) and (c 4 ; c 1 ). These ordered pairs deÿne the left-hand opponent relation in the game; the inverse relation is the right-hand opponent relation. Each of the v(v − 1) ordered pairs of players must occur exactly once in a directed whist tournament. The existence of a DWh(v) is equivalent to the existence of a (v; 4; 1)-RPMD, a resolvable perfect Mendelsohn design with block size four [6] .. In a triplewhist tournament TWh(v) in each game (c 1 ; c 2 ; c 3 ; c 4 ) the unordered pairs {c 1 ; c 2 } and {c 3 ; c 4 } are opponents of the ÿrst kind, and the unordered pairs {c 1 ; c 4 } and {c 2 ; c 3 } are opponents of the second kind. A TWh(v) is a Wh(v) with the additional requirement that each player opposes every other player once as an opponent of the ÿrst kind and once as an opponent of the second kind.. In this work we determine all nonisomorphic Wh(v), DWh(v), and TWh(v) for v 6 12. In particular, we ÿnd an apparently new Wh(9), and we show that the two Wh(12) found by Finizio [8] are the only Wh (12) and that neither a DWh(12) nor a TWh (12) exists.. The paper is outlined as follows. In Section 2 various concepts related to whist tournaments are introduced and earlier results are surveyed. A method for ÿnding whist tournaments from resolved (v; 4; 3)-designs is discussed in Section 3. An approach for isomorph rejection by mapping tournaments into graphs and using the graph automorphism program nauty is considered in Section 4. The complete classiÿcation results for v 6 12 are presented in Section 5, and the paper is concluded in Section 6. This work completes the classiÿcation of whist tournaments, directed whist tournaments, and triplewhist tournaments with up to 12 players. The main results are the nonexistence proofs for DWh (12) and TWh (12) , and the discovery of an apparently previously unknown whist tournament for nine players. In the following, we use the last result to develop a real-life tournament.. In duplicate bridge two players are said to play a deal in the same direction, if both of them play north or south, or if both of them play east or west. The score a player obtains in a given deal is compared to the scores of other players who play the deal in the same direction. For fairness, it is desirable that all pairs of players are compared an equal number of times, that is, that all pairs of players play the same number of deals in the same direction. To balance the comparisons, the concept of arrow switching is useful. When a table is arrow switched in a given round, that round is played with a quarter-turn o set with regard to the seating at that table. The player seated west will play the north cards, the player seated north will play the east cards, etc. This allows balancing the comparisons without unduly complicating the player movementan important consideration in practice. The tournament in Table 3 is such a DWh(9) that when the second table is arrow switched in the rounds marked in the A column, all pairs of players play the same number of rounds in the same direction, and we have a perfectly balanced nine-player individual bridge tournament. In the tournament in Table 3 rounds 2-8 can be obtained from the previous round by adding 1 mod 8 to each element less than eight.. Work is in progress to classify the near resolutions of (13; 4; 3)-designs and whist tournaments for 13 players. We expect the number of resolutions of (16; 4; 3)-designs to be so large that the approach adopted here is no longer feasible. The number of nonisomorphic Wh(v), DWh(v), and TWh(v) for v 6 12 is displayed in Table 1 . As expected, we ÿnd no DWh(4), DWh(8), TWh(5) nor TWh (9) . There are no DWh(12) nor TWh(12) either.. The nonisomorphic Wh(v), DWh(v), and TWh(v) for v 6 12 are listed in Table 2 . In Table 2 , in the initial rounds of the DWh(9) with automorphism group Z 3 × Z 3 , the notation ab is shorthand for (a; b), and Q 8 is the quaternion group. Two DWh(v) or TWh(v) are joined by a curly brace whenever they have the same underlying Wh(v); for those v for which DWh(v) or TWh(v) exist, the Wh(v) are not explicitly listed, as they can be obtained by interpreting the DWh(v) or TWh(v) as a Wh(v).. The full automorphism groups of the Wh(v) for v = 4; 5; 8; 12 are of order 24, 20, 56, and 11, respectively. The full automorphism groups of the two Wh(9) are of order 144 and 16, in the order the tournaments are listed in Table 2 . The full automorphism groups of the TWh(4), DWh(5), and TWh (8) Table 2 .. When v = 4t + 1 is a prime power and Â is a primitive element of the Galois ÿeld F v , then one can obtain a DWh(v) by calculating the orbit of the initial round {(Â i ; Â t+i ; Â 2t+i ; Â 3t+i ): 0 6 i ¡ t} under F + v , the additive group of F v . This construction is attributed to Baker in [2] . The ÿrst DWh(9) in Table 2 (12) . There are exactly two Wh(12), both of which are Z-cyclic. Recall that for v = 12 there are ÿve nonisomorphic resolvable (v; 4; 3)-designs; both Wh(12) have the same underlying resolved (12; 4; 3)-design.. Both for directed and triplewhist tournaments, it is possible to enlarge the sets of indistinguishable designs. Two directed whist tournaments are said to be equivalent if they are isomorphic, or if they are isomorphic after simultaneously exchanging positions 2 and 4 in each whist game in one DWh(v). Such a permutation preserves the partner pairs, but exchanges the left-hand opponent relation and the right-hand opponent relation; in a sense, this is a mirror image of the DWh(v). As triplewhist tournaments may be viewed as a composition of three whist tournaments-one for partners, one for opponents of the ÿrst kind, and one for opponents of the second kind-two triplewhist tournaments are said to be equivalent if they are isomorphic or if they are isomorphic after applying a ÿxed permutation to the last three players of each game of one of the tournaments. This operation permutes the partnership relation, ÿrst-kind opponent relation, and second-kind opponent relation, and gives a TWh(v). It is easily seen, for example, that the two nonisomorphic DWh(5) and the two nonisomorphic TWh(8) in Table 2 are equivalent. Table 2 The nonisomorphic Wh(v), DWh(v), and TWh(v) for v 6 12 TWh (

O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


Automatic recognition of vector and parallel operations in a higher level language A compiler for recognizing statements of a FORTRAN program which are suited for fast execution on a parallel or pipeline machine such as ILLIAC-IV, STAR or ASC is described. The technique employs "interval analysis" to provide flow information to the vector/parallel recognizer. Where profitable the compiler changes scalar variables to subscripted variables. The output of the compiler is an extension to FORTRAN which shows parallel and vector operations explicitly. The very high performance computers being built today for delivery in the next several years (e.g. Texas Instrument's ASC, Control Data's STAR and Burrough's ILLIAC-IV) rely on radically new machine organizations to attain their speed.. They are based on pipeline (vector) or parallel processing concepts (i) which, however different they may be, appear quite similar to the user.. Each of these computers requires that the same sequence of operations be applied to a large set of data items in a regular fashion.. Each operation is specified in turn and it is applied to the entire set of data.. Thus, these machines may be thought of as performing an operation simultaneously on all data items.. The ILLIAC-IV operates on 64 data items in parallel.. The STAR and ASC perform operations on data items sequentially, but with a very high degree of overlap.. However, programmers are not accustomed to stating problems in the form required by these machines.. An effective means of problem statement is transformation of a standard high level language program into one which details parallel operations.. This paper describes the techniques used in a compiler to perform this transformation.. The compiler accepts a standard FORTRAN program (2), identifies implicit parallel or vector operations and produces a program which performs these operations explicitly.. The program output by the compiler is 'almost' in the Burrough's ILLIAC-IV FORTRAN language (3) . In this extension to FORTRAN an asterisk appearing in a subscript position indicates that the entire column takes part in an operation.. The operation is performed in a manner analagous to the functioning of an I/O statement's "implied DO".. The next three sections of this paper describe three of the four compiler segments: i.. Statement Classification 2.. Flow Analysis 3.. Recognition of Parallel or Vector Operations 4.. Optimization (not included, will be discussed in a later paper).

O B O O O B O O O O O B O B O O O O O O O O O O O O O O O B O B O O O O O O O O O O O O B B O O B O O O O O O O O B O O O O O O O O O O B O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O B O O O O O O O O O B O O O O O B O O O O O O O O B O O O O O O O O O O O O O O O O O B O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O B I O B O B O O O O O O O O O O O O O O