To save content items to your account,
please confirm that you agree to abide by our usage policies.
If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account.
Find out more about saving content to .
To save content items to your Kindle, first ensure no-reply@cambridge.org
is added to your Approved Personal Document E-mail List under your Personal Document Settings
on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part
of your Kindle email address below.
Find out more about saving to your Kindle.
Note you can select to save to either the @free.kindle.com or @kindle.com variations.
‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi.
‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.
Eden extends the non-strict functional language Haskell with constructs to control parallel evaluation of processes. Although processes are defined explicitly, communication and synchronisation issues are handled in a way transparent to the programmer. In order to offer effective support for parallel evaluation, Eden's coordination constructs override the inherently sequential demand-driven (lazy) evaluation strategy of its computation language Haskell. Eden is a general-purpose parallel functional language suitable for developing sophisticated skeletons – which simplify parallel programming immensely – as well as for exploiting more irregular parallelism that cannot easily be captured by a predefined skeleton. The paper gives a comprehensive description of Eden, its semantics, its skeleton-based programming methodology – which is applied in three case studies – its implementation and performance. Furthermore it points at many additional results that have been achieved in the context of the Eden project.
In this paper, we present some experience of using the concurrent functional language Erlang to implement a distributed video-on-demand server. For performance reasons, the server is deployed in a cheap cluster made from off-the-shelf components. The demanding system requirements, in addition to the complex and ever-changing domain, suggested a highly flexible and scalable architecture as well as a quite sophisticated control software. Functional programming played a key role in the development, allowing us to identify functional abstractions throughout the system. Using these building blocks, large configurations can be defined using functional and process composition, reducing the effort spent on adapting the system to the frequent changes in requirements. The server evolved from a prototype that was the result of a project supported by a regional cable company, and it is currently being used to provide services for real-world users. Despite our initial concerns, efficiency has not been a major issue.
We present a rule-based framework for the development of scalable parallel high performance simulations for a broad class of scientific applications (with particular emphasis on continuum mechanics). We take a pragmatic approach to our programming abstractions by implementing structures that are used frequently and have common high performance implementations on distributed memory architectures. The resulting framework borrows heavily from rule-based systems for relational database models, however limiting the scope to those parts that have obvious high performance implementation. Using our approach, we demonstrate predictable performance behavior and efficient utilization of large scale distributed memory architectures on problems of significant complexity involving multiple disciplines.
Engineering high-performance parallel programs is hard: not only must a correct, efficient and inherently-parallel algorithm be developed, but the computations must be effectively and efficiently coordinated across multiple processors. It has long been recognised that ideas and approaches drawn from functional programming may be particularly applicable to parallel and distributed computing (e.g. Wegner 1971). There are several reasons for this suitability. Concurrent stateless computations are much easier to coordinate, high-level coordination abstractions reduce programming effort, and declarative notations are amenable to reasoning, i.e. to optimising transformations, derivation and performance analysis.
Classical application domains of parallel computing are dominated by processing large arrays of numerical data. Whereas most functional languages focus on lists and trees rather than on arrays, SAC is tailor-made in design and in implementation for efficient high-level array processing. Advanced compiler optimizations yield performance levels that are often competitive with low-level imperative implementations. Based on SAC, we develop compilation techniques and runtime system support for the compiler-directed parallel execution of high-level functional array processing code on shared memory architectures. Competitive sequential performance gives us the opportunity to exploit the conceptual advantages of the functional paradigm for achieving real performance gains with respect to existing imperative implementations, not only in comparison with uniprocessor runtimes. While the design of SAC facilitates parallelization, the particular challenge of high sequential performance is that realization of satisfying speedups through parallelization becomes substantially more difficult. We present an initial compilation scheme and multi-threaded execution model, which we step-wise refine to reduce organizational overhead and to improve parallel performance. We close with a detailed analysis of the impact of certain design decisions on runtime performance, based on a series of experiments.
This paper introduces guarded and strongly guarded monads as a unified model of a variety of different term algebras covering fundamental examples such as initial algebras, final coalgebras, rational terms and term graphs. We develop a general method for obtaining finitary guarded monads that allows us to define and prove properties of the rational and term graph monads. Furthermore, our treatment of rational equations extends the traditional approach to allow right-hand sides of equations to be infinite terms, term graphs or other such coalgebraic structures. As an application, we use these generalised rational equations to sketch part of the correctness of the term graph implementation of functional programming languages.
By the Final Coalgebra Theorem of Aczel and Mendler, every endofunctor of the category of sets has a final coalgebra, which, however, may be a proper class. We generalise this to all ‘well-behaved’ categories ${\frak K}$. The role of the category of classes is played by a free cocompletion ${\frak K}^\infty$ of ${\frak K}$ under transfinite colimits, that is, colimits of ordinal-indexed chains. Every endofunctor $F$ of ${\frak K}$ has a canonical extension to an endofunctor $F^\infty$ of ${\frak K}^\infty$, which is proved to have a final coalgebra (and an initial algebra). Based on this, we prove a general solution theorem: for every endofunctor of a locally presentable category ${\frak K}$ all guarded equation-morphisms have unique solutions. The last result does not need the extension ${\frak K}^\infty$: the solutions are always found within the category ${\frak K}$.
The spi calculus is an extension of the pi calculus with cryptographic primitives, which was designed for the verification of cryptographic protocols. Because of this extension, the naive adaptation of labelled bisimulations from the pi calculus is too strong to be useful for the purposes of verification. Instead, as a viable alternative, several ‘environment-sensitive’ bisimulations have been proposed. In this paper, we present a formal study of the differences between these bisimulations.
This paper studies fundamental connections between profunctors (that is, distributors, or bimodules), open maps and bisimulation. In particular, it proves that a colimit preserving functor between presheaf categories (corresponding to a profunctor) preserves open maps and open map bisimulation. Consequently, the composition of profunctors preserves open maps as 2-cells. A guiding idea is the view that profunctors, and colimit preserving functors, are linear maps in a model of classical linear logic. But profunctors, and colimit preserving functors, as linear maps, are too restrictive for many applications. This leads to a study of a range of pseudo-comonads and of how non-linear maps in their co-Kleisli bicategories preserve open maps and bisimulation. The pseudo-comonads considered are based on finite colimit completion, ‘lifting’, and indexed families. The paper includes an appendix summarising the key results on coends, left Kan extensions and the preservation of colimits. One motivation for this work is that it provides a mathematical framework for extending domain theory and denotational semantics of programming languages to the more intricate models, languages and equivalences found in concurrent computation, but the results are likely to have more general applicability because of the ubiquitous nature of profunctors.
We show that the category of coalgebras of a wide-pullback preserving endofunctor on a category of presheaves is itself a category of presheaves. This illustrates a connection between Jacobs' temporal logic of coalgebras and Ghilardi and Meloni's presheaf semantics for temporal modalities.
This paper studies coalgebras from the perspective of finite observations. We introduce the notion of finite step equivalence and a corresponding category with finite step equivalence-preserving morphisms. This category always has a final object, which generalises the canonical model construction from Kripke models to coalgebras. We then turn to logics whose formulae are invariant under finite step equivalence, which we call logics of rank $\omega$. For these logics, we use topological methods and give a characterisation of compact logics and definable classes of models.
The articles in this part of this issue of the journal are a selection of the papers originally presented to the Fifth Workshop on Coalgebraic Methods in Computer Science. CMCS was held in April 2002, in Grenoble, France as a satellite conference of ETAPS. The conference proceedings were published in Electronic Notes in Theoretical Computer Science65 (1). There were fifteen contributed papers and two invited talks. Six papers were selected by the Program Committee after a meeting for consideration of this issue, and revised versions were then sent to referees. In consultation with them, I selected the four published here. Most of them were later revised, so, in general, the papers appearing here are improved versions of the conference versions.
In the previous chapter, we analyzed the performance benefits of MIMO communication and discussed architectures that are designed to reap those benefits. The focus was on the fast fading scenario. The story on slow fading MIMO channels is more complex. While the communication capability of a fast fading channel can be described by a single number, its capacity, that of a slow fading channel has to be described by the outage probability curve pout(·), as a function of the target rate. This curve is in essence a tradeoff between the data rate and error probability. Moreover, in addition to the power and degree-of-freedom gains in the fast fading scenario, multiple antennas provide a diversity gain in the slow fading scenario as well. A clear characterization of the performance benefits of multiple antennas in slow fading channels and the design of good space-time coding schemes that reap those benefits are the subjects of this chapter.
The outage probability curve pout(·) is the natural benchmark for evaluating the performance of space-time codes. However, it is difficult to characterize analytically the outage probability curves for MIMO channels. We develop an approximation that captures the dual benefits of MIMO communication in the high SNR regime: increased data rate (via an increase in the spatial degrees of freedom or, equivalently, the multiplexing gain) and increased reliability (via an increase in the diversity gain). The dual benefits are captured as a fundamental tradeoff between these two types of gains.
In this chapter, we will look at the capacity of MIMO fading channels and discuss transceiver architectures that extract the promised multiplexing gains from the channel. We particularly focus on the scenario when the transmitter does not know the channel realization. In the fast fading MIMO channel, we show the following:
At high SNR, the capacity of the i.i.d. Rayleigh fast fading channel scales like nmin log SNR bits/s/Hz, where nmin is the minimum of the number of transmit antennas nt and the number of receive antennas nr. This is a degree-of-freedom gain.
At low SNR, the capacity is approximately nrSNR log2 e bits/s/Hz. This is a receive beamforming power gain.
At all SNR, the capacity scales linearly with nmin. This is due to a combination of a power gain and a degree-of-freedom gain.
Furthermore, there is a transmit beamforming gain together with an opportunistic communication gain if the transmitter can track the channel as well.
Over a deterministic time-invariant MIMO channel, the capacity-achieving transceiver architecture is simple (cf. Section 7.1.1): independent data streams are multiplexed in an appropriate coordinate system (cf. Figure 7.2). The receiver transforms the received vector into another appropriate coordinate system to separately decode the different data streams. Without knowledge of the channel at the transmitter the choice of the coordinate system in which the independent data streams are multiplexed has to be fixed a priori.
In Chapter 3, our focus was on point-to-point communication, i.e., the scenario of a single transmitter and a single receiver. In this chapter, we turn to a network of many mobile users interested in communicating with a common wireline network infrastructure. This form of wireless communication is different from radio or TV in two important respects: first, users are interested in messages specific to them as opposed to the common message that is broadcast in radio and TV. Second, there is two-way communication between the users and the network. In particular, this allows feedback from the receiver to the transmitter, which is missing in radio and TV. This form of communication is also different from the all-wireless walkie-talkie communication since an access to a wireline network infrastructure is demanded. Cellular systems address such a multiuser communication scenario and form the focus of this chapter.
Broadly speaking, two types of spectra are available for commercial cellular systems. The first is licensed, typically nationwide and over a period of a few years, from the spectrum regulatory agency (FCC, in the United States). The second is unlicensed spectrum made available for experimental systems and to aid development of new wireless technologies. While licensing spectrum provides immunity from any kind of interference outside of the system itself, bandwidth is very expensive. This skews the engineering design of the wireless system to be as spectrally efficient as possible.
In Chapter 4, we studied several specific multiple access techniques (TDMA/FDMA, CDMA, OFDM) designed to share the channel among several users. A natural question is: what are the “optimal” multiple access schemes? To address this question, one must now step back and take a fundamental look at the multiuser channels themselves. Information theory can be generalized from the point-to-point scenario, considered in Chapter 5, to the multiuser ones, providing limits to multiuser communications and suggesting optimal multiple access strategies. New techniques and concepts such as successive cancellation, superposition coding and multiuser diversity emerge.
The first part of the chapter focuses on the uplink (many-to-one) and downlink (one-to-many) AWGN channel without fading. For the uplink, an optimal multiple access strategy is for all users to spread their signal across the entire bandwidth, much like in the CDMA system in Chapter 4. However, rather than decoding every user treating the interference from other users as noise, a successive interference cancellation (SIC) receiver is needed to achieve capacity. That is, after one user is decoded, its signal is stripped away from the aggregate received signal before the next user is decoded. A similar strategy is optimal for the downlink, with signals for the users superimposed on top of each other and SIC done at the mobiles: each user decodes the information intended for all of the weaker users and strips them off before decoding its own.
In this book, we have seen several different uses of multiple antennas in wireless communication. In Chapter 3, multiple antennas were used to provide diversity gain and increase the reliability of wireless links. Both receive and transmit diversity were considered. Moreover, receive antennas can also provide a power gain. In Chapter 5, we saw that with channel knowledge at the transmitter, multiple transmit antennas can also provide a power gain via transmit beamforming. In Chapter 6, multiple transmit antennas were used to induce channel variations, which can then be exploited by opportunistic communication techniques. The scheme can be interpreted as opportunistic beamforming and provides a power gain as well.
In this and the next few chapters, we will study a new way to use multiple antennas. We will see that under suitable channel fading conditions, having both multiple transmit and multiple receive antennas (i.e., a MIMO channel) provides an additional spatial dimension for communication and yields a degree-of-freedom gain. These additional degrees of freedom can be exploited by spatially multiplexing several data streams onto the MIMO channel, and lead to an increase in the capacity: the capacity of such a MIMO channel with n transmit and receive antennas is proportional to n.
Historically, it has been known for a while that a multiple access system with multiple antennas at the base-station allows several users to simultaneously communicate with the base-station.