19 research outputs found
Demonstrating high-precision photometry with a CubeSat: ASTERIA observations of 55 Cancri e
ASTERIA (Arcsecond Space Telescope Enabling Research In Astrophysics) is a 6U
CubeSat space telescope (10 cm x 20 cm x 30 cm, 10 kg). ASTERIA's primary
mission objective was demonstrating two key technologies for reducing
systematic noise in photometric observations: high-precision pointing control
and high-stabilty thermal control. ASTERIA demonstrated 0.5 arcsecond RMS
pointing stability and 10 milliKelvin thermal control of its camera
payload during its primary mission, a significant improvement in pointing and
thermal performance compared to other spacecraft in ASTERIA's size and mass
class. ASTERIA launched in August 2017 and deployed from the International
Space Station (ISS) November 2017. During the prime mission (November 2017 --
February 2018) and the first extended mission that followed (March 2018 - May
2018), ASTERIA conducted opportunistic science observations which included
collection of photometric data on 55 Cancri, a nearby exoplanetary system with
a super-Earth transiting planet. The 55 Cancri data were reduced using a custom
pipeline to correct CMOS detector column-dependent gain variations. A Markov
Chain Monte Carlo (MCMC) approach was used to simultaneously detrend the
photometry using a simple baseline model and fit a transit model. ASTERIA made
a marginal detection of the known transiting exoplanet 55 Cancri e
(~\Rearth), measuring a transit depth of ppm. This is the
first detection of an exoplanet transit by a CubeSat. The successful detection
of super-Earth 55 Cancri e demonstrates that small, inexpensive spacecraft can
deliver high-precision photometric measurements.Comment: 23 pages, 9 figures. Accepted in A
HD 219134 Revisited: Planet d Transit Upper Limit and Planet f Transit Nondetection with ASTERIA and TESS
HD 219134 is a K3V dwarf star with six reported radial-velocity discovered planets. The two innermost planets b and c show transits, raising the possibility of this system to be the nearest (6.53 pc), brightest (V = 5.57) example of a star with a compact multiple transiting planet system. Ground-based searches for transits of planets beyond b and c are not feasible because of the infrequent transits, long transit duration (~5 hr), shallow transit depths (<1%), and large transit time uncertainty (~half a day). We use the space-based telescopes the Arcsecond Space Telescope Enabling Research in Astrophysics (ASTERIA) and the Transiting Exoplanet Survey Satellite (TESS) to search for transits of planets f (P = 22.717 days and M sin i = 7.3 ± 0.04M_⊕) and d (P = 46.859 days and M sin i = 16.7 ± 0.64M_⊕). ASTERIA was a technology demonstration CubeSat with an opportunity for science in an extended program. ASTERIA observations of HD 219134 were designed to cover the 3σ transit windows for planets f and d via repeated visits over many months. While TESS has much higher sensitivity and more continuous time coverage than ASTERIA, only the HD 219134 f transit window fell within the TESS survey's observations. Our TESS photometric results definitively rule out planetary transits for HD 219134 f. We do not detect the Neptune-mass HD 219134 d transits and our ASTERIA data are sensitive to planets as small as 3.6 R_⊕. We provide TESS updated transit times and periods for HD 219134 b and c, which are designated TOI 1469.01 and 1469.02 respectively
Global patient outcomes after elective surgery: prospective cohort study in 27 low-, middle- and high-income countries.
BACKGROUND: As global initiatives increase patient access to surgical treatments, there remains a need to understand the adverse effects of surgery and define appropriate levels of perioperative care. METHODS: We designed a prospective international 7-day cohort study of outcomes following elective adult inpatient surgery in 27 countries. The primary outcome was in-hospital complications. Secondary outcomes were death following a complication (failure to rescue) and death in hospital. Process measures were admission to critical care immediately after surgery or to treat a complication and duration of hospital stay. A single definition of critical care was used for all countries. RESULTS: A total of 474 hospitals in 19 high-, 7 middle- and 1 low-income country were included in the primary analysis. Data included 44 814 patients with a median hospital stay of 4 (range 2-7) days. A total of 7508 patients (16.8%) developed one or more postoperative complication and 207 died (0.5%). The overall mortality among patients who developed complications was 2.8%. Mortality following complications ranged from 2.4% for pulmonary embolism to 43.9% for cardiac arrest. A total of 4360 (9.7%) patients were admitted to a critical care unit as routine immediately after surgery, of whom 2198 (50.4%) developed a complication, with 105 (2.4%) deaths. A total of 1233 patients (16.4%) were admitted to a critical care unit to treat complications, with 119 (9.7%) deaths. Despite lower baseline risk, outcomes were similar in low- and middle-income compared with high-income countries. CONCLUSIONS: Poor patient outcomes are common after inpatient surgery. Global initiatives to increase access to surgical treatments should also address the need for safe perioperative care. STUDY REGISTRATION: ISRCTN5181700
Types, Regions, and Effects for Safe Programming with Object-Oriented Parallel Frameworks
Object-oriented frameworks can make parallel programming easier by providing generic parallel algorithms such as map, reduce, or scan, and letting the user fill in the details with sequential code. However, such frameworks can produce incorrect behavior if they are not carefully used, e.g., if a user-supplied function performs an unsynchronized access to a global variable. We develop novel techniques that a framework designer can use to prevent such errors. Building on a language (Deterministic Parallel Java, or DPJ) with an expressive region-based type and effect system, we show how to write a
framework API that enables sound reasoning about the effects of unknown user-supplied methods. We also describe novel extensions to DPJ that enable generic types and effects --- essential for flexible frameworks --- while retaining soundness. Finally, we show how to make the reasoning modular: using any desired testing or verification technique, the framework author can guarantee noninterference subject to the API constraints; and the compiler can check the constraints to provide a noninterference guarantee for the entire user program. We
evaluate our technique by using it to write two parallel frameworks and two realistic parallel algorithms.NSF grant CCF 07-02724NSF grant CNS 07-20772Microsoft and Intel through UPCRC Illinoisunpublishednot peer reviewe
An effect system and language for deterministic-by-default parallel programming
This thesis presents a new, Java-based object-oriented parallel
language called Deterministic Parallel Java (DPJ). DPJ uses a novel effect system to guarantee determinism by default. That means that parallel programs are guaranteed to execute deterministically unless nondeterminism is explicitly requested. This is in contrast to the shared-memory models in widespread use today, such as threads and locks (including threads in ordinary Java). Those
models are inherently nondeterministic, do not provide any way to check or enforce that a computation is deterministic, and can even have unintended data races, which can lead to strange and unexpected behaviors. Because deterministic programs are much easier to reason about than arbitrary parallel code, determinism by default simplifies
parallel programming.
This thesis makes several broad contributions to the state of the art in programming languages and effect systems. First, it
presents a comprehensive research agenda for achieving determinism by
default in parallel languages with reference aliasing and shared
mutable state. It argues that an object-oriented effect system is a
good approach to managing shared memory conflicts. It also raises
several technical challenges, many of which are taken up in the rest
of the thesis.
Second, this thesis presents an effect system and language for
deterministic parallel programming using a fork-join model of parallel
control. With simple modular checking, and with no runtime checking overhead, the effect system guarantees at compile time that there are no conflicting memory accesses between any pairs of parallel tasks. The effect system supports several important patterns of deterministic
parallelism that previous systems cannot express. We describe the
effect system and language both formally and informally, and prove
soundness for the formal language. We also describe our evaluation
showing that the language can express a range of parallel programming patterns with good performance.
Third, this thesis extends the effect system and language for
determinism to support a controlled form of nondeterminism. Conflicting accesses are allowed only for an explicitly identified
nondeterministic parallel construct, so the language is deterministic by default. A transactional runtime provides isolation for atomic
statements, while the extended effect system provides stronger
compile-time safety guarantees than any system we know of. In
addition to determinism by default, the language guarantees race
freedom; strong isolation for atomic statements even if the runtime guarantees only weak isolation; and an elegant way of
composing deterministic and nondeterministic operations that preserves local reasoning about deterministic operations. Again we give an informal treatment, a formal treatment, and soundness proofs. We describe an evaluation showing that the extended language can express realistic nondeterministic algorithms in a natural way, with reasonable performance given the transactional runtime we used. Further, by eliminating unnecessary synchronization, the effect system
enables a significant reduction in the software runtime overhead.
Fourth, this thesis describes programming techniques and further extensions to the effect system for supporting object-oriented parallel frameworks. Frameworks represent an important tool for parallel programming in their own right. They can also express some operations that the language and effect system alone cannot, for
example pipeline parallelism. We show how to write a framework API
using the DPJ effect system so that the framework writer can guarantee
correctness properties to the user, assuming the user's code passes
the DPJ type checker. We also show how to extend the DPJ effect
system to add generic types and effects, making the frameworks more
general and useful. Finally, we state the requirements for a correct framework implementation. These requirements may be checked with a combination of DPJ's effect system and external reasoning. Again we give an informal treatment, a formal treatment, and soundness proofs. We also describe the results of an evaluation showing that the techniques described can express realistic frameworks and parallel
algorithms
Parallel SAH k-D Tree Construction for Fast Dynamic Scene Ray Tracing
The k-D tree is a well-studied acceleration data structure for ray tracing. It is used to organize primitives in a scene to allow efficient execution of intersection operations between rays and the primitives. The highest quality k-D tree can be obtained using greedy cost optimization based on a surface area heuristc (SAH). While the high quality enables very fast ray tracing times, a key drawback is that the k-D tree construction time remains prohibitively expensive. This cost is unreasonable for rendering dynamic scenes for future visual computing applications on emerging multicore systems. Much work has therefore been focused on faster parallel k-D tree construction performance at the expense of approximating or ignoring SAH computation, which produces k-D trees that degrade rendering time. In this paper, we present new, faster multicore al- gorithms for building precise SAH-optimized kd-trees. Our best algorithm makes a tradeoff between worse cache performance and higher parallelism to provide up to 7X speedup on 16 cores, using two different kinds of parallelism models, without degrading tree quality and rendering time
Parallel Programming Must Be Deterministic By Default
We examine the problem of providing a parallel programming model that guarantees deterministic semantics. We propose a research agenda focusing on the following questions: 1. How to guarantee determinism in a modern object-oriented language; 2. How to provide sound guarantees when parts of the program either cannot be proved deterministic or have "harmless" nondeterminism; 3. How to specify explicit non-determinism when needed; and 4. How to make it easier to port programs to the language
Inferring Method Effect Summaries for Nested Heap Regions
Effect systems are important for reasoning about the side effects of a program. Although effect systems have been around for decades, they have not been widely adopted in practice because of the large number of annotations that they require. A tool that infers effects automatically can make effect systems practical. We present an effect inference algorithm and an Eclipse plug-in, DPJizer, which alleviate the burden of writing effect annotations for a language called Deterministic Parallel Java (DPJ). The key novel feature of the algorithm is the ability to infer effects on nested heap regions. Besides DPJ, we also illustrate how the algorithm can be used for a different effect system based on object ownership. Our experience shows that DPJizer is both useful and effective: (i) inferring effect annotations automatically saves significant programming burden; and (ii) inferred effects are more precise than those written manually, and are fine-grained enough to enable the compiler to prove determinism of the program.NSF grant 07-02724NSF grant 07-20772NSF grant 08-33128NSF grant 08-33188Microsoft and Intel through UPCRC Illinoispublished or submitted for publicationis peer reviewe
High-Level Abstractions for Safe Parallelism
Abstract Recent research efforts have developed sophisticated type systems for eliminating unwanted interference (i.e., read-write conflicts) from parallel code. While these systems are powerful, they suffer from potential barriers to adoption in that (1) they rely upon complex and/or restrictive features that may be difficult for programmers to understand and use; and (2) they impose a nontrivial annotation burden. In this work we explore a different approach: instead of extending the type system to do all the work of proving noninterference, we rely upon high-level abstractions that capture important patterns of noninterfering parallelism -for example, performing a parallel divide-and-conquer update on an array, or updating different array cells in parallel while reading memory disjoint from the array. We show how, with suitably designed APIs, a few simple type system extensions can guarantee that user code is noninterfering, assuming the APIs are correctly implemented. Of course someone still must check the API implementation; but such checking (which can be done, e.g., with program logic) is hidden from the user of the API. To illustrate the idea, we present a prototype implementation in Standard ML, including several parallel APIs and two realistic client programs. We sketch the typing annotations and verification methodology we have in mind. We pose several research questions raised by the prototype and suggest ideas for extending the work
Software Transactional Memory for Large Scale Clusters
While there has been extensive work on the design of software transactional memory (STM) for cache coherent shared memory systems, there has been no work on the design of an STM system for very large scale platforms containing potentially thousands of nodes. In this work, we present Cluster-STM, an STM designed for high performance on large-scale commodity clusters. Our design addresses several novel issues posed by this domain, including aggregating communication, managing locality, and distributing transactional metadata onto the nodes. We also re-evaluate several STM design choices previously studied for cache-coherent machines and conclude that, in some cases, different choices are appropriate on clusters. Finally, we show that our design scales well up to 512 processors. This is because on a cluster, the main barrier to STM scalability is the remote communication overhead imposed by the STM operations, and our design aggregates most of that communication with the communication of the underlying data