22 research outputs found
Recommended from our members
Final Report PetaScale Application Development Analysis Grant Number DE-FG02-04ER25629
The results obtained from this project will fundamentally change the way we look at computer performance analysis. These results are made possible by the precise definition of a consistent system of measurement with a set of primary units designed specifically for computer performance analysis. This system of units, along with their associated dimensions, allows us to apply the methods of dimensional analysis, based on the Pi Theorem, to define scaling and self-similarity relationships. These relationships reveal new insights into experimental results that otherwise seems only vaguely correlated. Applying the method to cache-miss data revealed scaling relationships that were not seen by those who originally collected the data. Applying dimensional analysis to the performance of parallel numerical algorithms revealed that computational force is a unifying concept for understanding the interaction between hardware and software. The efficiency of these algorithms depends, in a very intimate way, on the balance between hardware forces and software forces. Analysis of five different algorithms showed that performance analysis can be reduced to a study of the differential geometry of the efficiency surface. Each algorithm defines a set of curvilinear coordinates, specific to that algorithm, and different machines follow different paths along the surface depending on the difference in balance between hardware forces and software forces. Two machines with the same balance in forces follow the same path and are self-similar. The most important result from the project is the statement of the Principle of Computational Least Action. This principle follows from the identification of a dynamical system underlying computer performance analysis. Instructions in a computer are modeled as a classical system under the influence of computational forces. Each instruction generates kinetic energy during execution, and the sum of the kinetic energy for all instructions produces a kinetic energy spectrum as a function of time. These spectra look very much like the spectra used by chemists to analyze properties of molecules. Large spikes in the spectra reveal events during execution, like cache misses, that limit performance. The area under the kinetic energy spectrum is the computational action generated by the program. This computational action defines a normed metric space that measures the size of a program in terms of its action norm and the distance between programs in terms of the norm of the difference of their action. This same idea can be applied to a set of programmers writing code and leads to a computational action metric that measures programmer productivity. In both cases, experimental evidence suggests that highly efficient programs and highly productive programmers generate the least computational action
Religion as practices of attachment and materiality: the making of Buddhism in contemporary London
This article aims to explore Buddhism’s often-overlooked presence on London’s urban landscape, showing how its quietness and subtlety of approach has allowed the faith to grow largely beneath the radar. It argues that Buddhism makes claims to urban space in much the same way as it produces its faith, being as much about the practices performed and the spaces where they are enacted as it is about faith or beliefs. The research across a number of Buddhist sites in London reveals that number of people declaring themselves as Buddhists has indeed risen in recent years, following the rise of other non-traditional religions in the UK; however, this research suggests that Buddhism differs from these in several ways. Drawing on Baumann’s (2002) distinction between traditionalist and modernist approaches to Buddhism, our research reveals a growth in each of these. Nevertheless, Buddhism remains largely invisible in the urban and suburban landscape of London, adapting buildings that are already in place, with little material impact on the built environment, and has thus been less subject to contestation than other religious movements and traditions. This research contributes to a growing literature which foregrounds the importance of religion in making contemporary urban and social worlds
Time and Origin of Cichlid Colonization of the Lower Congo Rapids
Most freshwater diversity is arguably located in networks of rivers and streams, but, in contrast to lacustrine systems riverine radiations, are largely understudied. The extensive rapids of the lower Congo River is one of the few river stretches inhabited by a locally endemic cichlid species flock as well as several species pairs, for which we provide evidence that they have radiated in situ. We use more that 2,000 AFLP markers as well as multilocus sequence datasets to reconstruct their origin, phylogenetic history, as well as the timing of colonization and speciation of two Lower Congo cichlid genera, Steatocranus and Nanochromis. Based on a representative taxon sampling and well resolved phylogenetic hypotheses we demonstrate that a high level of riverine diversity originated in the lower Congo within about 5 mya, which is concordant with age estimates for the hydrological origin of the modern lower Congo River. A spatial genetic structure is present in all widely distributed lineages corresponding to a trisection of the lower Congo River into major biogeographic areas, each with locally endemic species assemblages. With the present study, we provide a phylogenetic framework for a complex system that may serve as a link between African riverine cichlid diversity and the megadiverse cichlid radiations of the East African lakes. Beyond this we give for the first time a biologically estimated age for the origin of the lower Congo River rapids, one of the most extreme freshwater habitats on earth
Performance metrics based on computational action
We propose a new performance metric based on computational action. We examine work as it evolves in time and compute computational action as the integral of the work function over time. We compare the action generated at less than full power with the action that could have been generated at full power. We claim that the goal of performance optimization is to minimize lost, or wasted, action. We calculate our metric for some computers in the Top500 lis
F--: A Parallel Extension to Cray Fortran
F-- is a parallel extension to Cray Fortran 77 for distributed memory computers. It adds exactly one new symbol to the language, a vertical line that separates two sets of indices. The first set contains the coordinates for data in a local data grid. The second set contains the coordinates for processors in a global processor grid. A statement such as x(i,j)=y(i,j| p,q) generates a load from remote address y(i,j) in the data grid on processor (p,q) followed by a store to local address x(i,j) in the local data grid. F-- syntax requires an explicit statement of the relationship between data layout and processor layout. It assumes that good performance on a distributed memory computer requires the programmer to understand and to exploit data locality. Programmers use the F-- syntax only when it is needed. 0therwise all data are local and all code is local. Compiler and library developers concentrate on generating well-optimized local code
Recommended from our members
Final Report, Center for Programming Models for Scalable Parallel Computing: Co-Array Fortran, Grant Number DE-FC02-01ER25505
The major accomplishment of this project is the production of CafLib, an 'object-oriented' parallel numerical library written in Co-Array Fortran. CafLib contains distributed objects such as block vectors and block matrices along with procedures, attached to each object, that perform basic linear algebra operations such as matrix multiplication, matrix transpose and LU decomposition. It also contains constructors and destructors for each object that hide the details of data decomposition from the programmer, and it contains collective operations that allow the programmer to calculate global reductions, such as global sums, global minima and global maxima, as well as vector and matrix norms of several kinds. CafLib is designed to be extensible in such a way that programmers can define distributed grid and field objects, based on vector and matrix objects from the library, for finite difference algorithms to solve partial differential equations. A very important extra benefit that resulted from the project is the inclusion of the co-array programming model in the next Fortran standard called Fortran 2008. It is the first parallel programming model ever included as a standard part of the language. Co-arrays will be a supported feature in all Fortran compilers, and the portability provided by standardization will encourage a large number of programmers to adopt it for new parallel application development. The combination of object-oriented programming in Fortran 2003 with co-arrays in Fortran 2008 provides a very powerful programming model for high-performance scientific computing. Additional benefits from the project, beyond the original goal, include a programto provide access to the co-array model through access to the Cray compiler as a resource for teaching and research. Several academics, for the first time, included the co-array model as a topic in their courses on parallel computing. A separate collaborative project with LANL and PNNL showed how to extend the co-array model to other languages in a small experimental version of Co-array Python. Another collaborative project defined a Fortran 95 interface to ARMCI to encourage Fortran programmers to use the one-sided communication model in anticipation of their conversion to the co-array model later. A collaborative project with the Earth Sciences community at NASA Goddard and GFDL experimented with the co-array model within computational kernels related to their climate models, first using CafLib and then extending the co-array model to use design patterns. Future work will build on the design-pattern idea with a redesign of CafLib as a true object-oriented library using Fortran 2003 and as a parallel numerical library using Fortran 2008
A parallel extension to Cray Fortran
ABSTRACT p--is a parallel extension to Gray Fortran 77 for distributed memory computers. It adds exactly one new symbol to the language, a vertical line that separates two sets of indices. The first set contains the coordinates for data in a local data grid. The second set contains the coordinates for processors in a global processor grid. A statement such as x(i, j) = y (i, .ilp, q) generates a load from remote address y(i, j) in the data grid on processor (p, q) followed by a store to local address x(i, j) in the local data grid. p--syntax requires an explicit statement of the relationship between data layout and processor layout. It assumes that good performance on a distributed memory computer requires the programmer to understand and to exploit data locality. Programmers use the p--syntax only when it is needed. Otherwise all data are local and all code is local. Compiler and library developers concentrate on generating well-optimized local code
Co-Array Fortran for parallel programming
Co-Array Fortran, formerly known as F--, is a small extension of Fortran 95 for parallel processing. A Co-Array Fortran program is interpreted as if it were replicated a number of times and all copies were executed asynchronously. Each copy has its own set of data objects and is termed an image. The array syntax of Fortran 95 is extended with additional trailing subscripts in square brackets to give a clear and straightforward representation of any access to data that is spread across images. References without square brackets are to local data, so code that can run independently is uncluttered. Only where there are square brackets, or where there is a procedure call and the procedure contains square brackets, is communication between images involved. There are intrinsic procedures to synchronize images, return the number of images, and return the index of the current image. We introduce the extension; give examples to illustrate how clear, powerful, and flexible it can be; and provide a technical definition