1,540 research outputs found
Research and Education in Computational Science and Engineering
Over the past two decades the field of computational science and engineering
(CSE) has penetrated both basic and applied research in academia, industry, and
laboratories to advance discovery, optimize systems, support decision-makers,
and educate the scientific and engineering workforce. Informed by centuries of
theory and experiment, CSE performs computational experiments to answer
questions that neither theory nor experiment alone is equipped to answer. CSE
provides scientists and engineers of all persuasions with algorithmic
inventions and software systems that transcend disciplines and scales. Carried
on a wave of digital technology, CSE brings the power of parallelism to bear on
troves of data. Mathematics-based advanced computing has become a prevalent
means of discovery and innovation in essentially all areas of science,
engineering, technology, and society; and the CSE community is at the core of
this transformation. However, a combination of disruptive
developments---including the architectural complexity of extreme-scale
computing, the data revolution that engulfs the planet, and the specialization
required to follow the applications to new frontiers---is redefining the scope
and reach of the CSE endeavor. This report describes the rapid expansion of CSE
and the challenges to sustaining its bold advances. The report also presents
strategies and directions for CSE research and education for the next decade.Comment: Major revision, to appear in SIAM Revie
Parallelism in declarative languages
Imperative programming languages were initially built for uniprocessor systems that evolved out of the Von Neumann machine model. This model of storage oriented computation blocks parallelism and increases the cost of parallel program development and porting. Declarative languages based on mathematical models of computation, seem more suitable for the development of parallel programs. In the first part of this thesis we examine different language families under the declarative paradigm: functional, logic, and constraint languages. Functional languages are based on the abstract model of functions and (lamda)-calculus. They were initially developed for symbolic computation, but today they are commonly used in numerical analysis and many other application areas. Pure lisp is a widely known member of this class. Logic languages are based on first order predicate calculus. Although they were initially developed for theorem proving, fifth generation operating systems are written in them. Most logic languages are descendants or distant relatives of Prolog. Constraint languages are related to logic languages. In a constraint language you define a program object by placing constraints on its structure and its behavior. They were initially used in graphics applications, but today researchers work on using them in parallel computation. Here we will compare and contrast the language classes above, locate advantages and deficiencies, and explain different choices made by language implementors. In the second part of thesis we describe a front end for the CONSUL, a prototype constraint language for programming multiprocessors. The most important features of the front end are compact representation of constraints, type definitions, functional use of relations, and the ability to split programs into multiple files
Leibniz's Infinitesimals: Their Fictionality, Their Modern Implementations, And Their Foes From Berkeley To Russell And Beyond
Many historians of the calculus deny significant continuity between
infinitesimal calculus of the 17th century and 20th century developments such
as Robinson's theory. Robinson's hyperreals, while providing a consistent
theory of infinitesimals, require the resources of modern logic; thus many
commentators are comfortable denying a historical continuity. A notable
exception is Robinson himself, whose identification with the Leibnizian
tradition inspired Lakatos, Laugwitz, and others to consider the history of the
infinitesimal in a more favorable light. Inspite of his Leibnizian sympathies,
Robinson regards Berkeley's criticisms of the infinitesimal calculus as aptly
demonstrating the inconsistency of reasoning with historical infinitesimal
magnitudes. We argue that Robinson, among others, overestimates the force of
Berkeley's criticisms, by underestimating the mathematical and philosophical
resources available to Leibniz. Leibniz's infinitesimals are fictions, not
logical fictions, as Ishiguro proposed, but rather pure fictions, like
imaginaries, which are not eliminable by some syncategorematic paraphrase. We
argue that Leibniz's defense of infinitesimals is more firmly grounded than
Berkeley's criticism thereof. We show, moreover, that Leibniz's system for
differential calculus was free of logical fallacies. Our argument strengthens
the conception of modern infinitesimals as a development of Leibniz's strategy
of relating inassignable to assignable quantities by means of his
transcendental law of homogeneity.Comment: 69 pages, 3 figure
Cartan, Schouten and the search for connection
In this paper we provide an analysis, both historical and mathematical, of two joint papers on the theory of connections by \uc3\u89lie Cartan and Jan Arnoldus Schouten that were published in 1926. These papers were the result of a fertile collaboration between the two eminent geometers that flourished in the two-year period 1925-1926. We describe the birth and the development of their scientific relationship especially in the light of unpublished sources that, on the one hand, offer valuable insight into their common research interests and, on the other hand, provide a vivid picture of Cartan's and Schouten's different technical choices. While the first part of this work is preeminently of a historical character, the second part offers a modern mathematical treatment of some contents of the two contributions
Parallel functional programming for message-passing multiprocessors
We propose a framework for the evaluation of implicitly parallel functional programs on message passing multiprocessors with special emphasis on the issue of load bounding. The model is based on a new encoding of the lambda-calculus in Milner's pi-calculus and combines lazy evaluation and eager (parallel) evaluation in the same framework. The pi-calculus encoding serves as the specification of a more concrete compilation scheme mapping a simple functional language into a message passing, parallel program. We show how and under which conditions we can guarantee successful load bounding based on this compilation scheme. Finally we discuss the architectural requirements for a machine to support our model efficiently and we present a simple RISC-style processor architecture which meets those criteria
A Rational Deconstruction of Landin's SECD Machine with the J Operator
Landin's SECD machine was the first abstract machine for applicative
expressions, i.e., functional programs. Landin's J operator was the first
control operator for functional languages, and was specified by an extension of
the SECD machine. We present a family of evaluation functions corresponding to
this extension of the SECD machine, using a series of elementary
transformations (transformation into continu-ation-passing style (CPS) and
defunctionalization, chiefly) and their left inverses (transformation into
direct style and refunctionalization). To this end, we modernize the SECD
machine into a bisimilar one that operates in lockstep with the original one
but that (1) does not use a data stack and (2) uses the caller-save rather than
the callee-save convention for environments. We also identify that the dump
component of the SECD machine is managed in a callee-save way. The caller-save
counterpart of the modernized SECD machine precisely corresponds to Thielecke's
double-barrelled continuations and to Felleisen's encoding of J in terms of
call/cc. We then variously characterize the J operator in terms of CPS and in
terms of delimited-control operators in the CPS hierarchy. As a byproduct, we
also present several reduction semantics for applicative expressions with the J
operator, based on Curien's original calculus of explicit substitutions. These
reduction semantics mechanically correspond to the modernized versions of the
SECD machine and to the best of our knowledge, they provide the first syntactic
theories of applicative expressions with the J operator
- …