354 research outputs found
Compiling global name-space programs for distributed execution
Distributed memory machines do not provide hardware support for a global address space. Thus programmers are forced to partition the data across the memories of the architecture and use explicit message passing to communicate data between processors. The compiler support required to allow programmers to express their algorithms using a global name-space is examined. A general method is presented for analysis of a high level source program and along with its translation to a set of independently executing tasks communicating via messages. If the compiler has enough information, this translation can be carried out at compile-time. Otherwise run-time code is generated to implement the required data movement. The analysis required in both situations is described and the performance of the generated code on the Intel iPSC/2 is presented
Semi-automatic process partitioning for parallel computation
On current multiprocessor architectures one must carefully distribute data in memory in order to achieve high performance. Process partitioning is the operation of rewriting an algorithm as a collection of tasks, each operating primarily on its own portion of the data, to carry out the computation in parallel. A semi-automatic approach to process partitioning is considered in which the compiler, guided by advice from the user, automatically transforms programs into such an interacting task system. This approach is illustrated with a picture processing example written in BLAZE, which is transformed into a task system maximizing locality of memory reference
Supporting shared data structures on distributed memory architectures
Programming nonshared memory systems is more difficult than programming shared memory systems, since there is no support for shared data structures. Current programming languages for distributed memory architectures force the user to decompose all data structures into separate pieces, with each piece owned by one of the processors in the machine, and with all communication explicitly specified by low-level message-passing primitives. A new programming environment is presented for distributed memory architectures, providing a global name space and allowing direct access to remote parts of data values. The analysis and program transformations required to implement this environment are described, and the efficiency of the resulting code on the NCUBE/7 and IPSC/2 hypercubes are described
Analysis of the Evolution of the Hominin Jaw & Dentition
The food an organism consumes impacts the evolution of its dentition and facial morphology. As the teeth of early hominins are often some of the only parts of the skeleton to be fossilized, their morphological changes throughout time are better documented and understood than many other body parts. A literature review of articles focusing on the evolution of the dentition and mandibular morphology of members of the tribe Homininae was conducted. We deduced the ways in which tool use and cooking directly affected the teeth of hominins from the late Pleistocene to Pliocene from this information. The tangible ways that changing dietary patterns acted as selective forces throughout the course of hominin evolution are discussed
Compiling Programs for Nonshared Memory Machines
Nonshared-memory parallel computers promise scalable performance for scientific computing needs. Unfortunately, these machines are now difficult to program because the message-passing languages available for them do not reflect the computational models used in designing algorithms. This introduces a semantic gap in the programming process which is difficult for the programmer to fill. The purpose of this research is to show how nonshared-memory machines can be programmed at a higher level than is currently possible. We do this by developing techniques for compiling shared-memory programs for execution on those architectures. The heart of the compilation process is translating references to shared memory into explicit messages between processors. To do this, we first define a formal model for distribution data structures across processor memories. Several abstract results describing the messages needed to execute a program are immediately derived from this formalism. We then develop two distinct forms of analysis to translate these formulas into actual programs. Compile-time analysis is used when enough information is available to the compiler to completely characterize the data sent in the messages. This allows excellent code to be generated for a program. Run-time analysis produces code to examine data references while the program is running. This allows dynamic generation of messages and a correct implementation of the program. While the over-head of the run-time approach is higher than the compile-time approach, run-time analysis is applicable to any program. Performance data from an initial implementation show that both approaches are practical and produce code with acceptable efficiency
Recommended from our members
When and why people misestimate future feelings: Identifying strengths and weaknesses in affective forecasting.
People try to make decisions that will improve their lives and make them happy, and to do so, they rely on affective forecasts-predictions about how future outcomes will make them feel. Decades of research suggest that people are poor at predicting how they will feel and that they commonly overestimate the impact that future events will have on their emotions. Recent work reveals considerable variability in forecasting accuracy. This investigation tested a model of affective forecasting that captures this variability in bias by differentiating emotional intensity, emotional frequency, and mood. Two field studies examined affective forecasting in college students receiving grades on a midterm exam (Study 1, N = 643), and U.S. citizens after the outcome of the 2016 presidential election (Study 2, N = 706). Consistent with the proposed model, participants were more accurate in forecasting the intensity of their emotion and less accurate in forecasting emotion frequency and mood. Overestimation of the effect of the event on mood increased over time since the event. Three experimental studies examined mechanisms that contribute to differential forecasting accuracy. Biases in forecasting intensity were caused by changes in perceived event importance; biases in forecasting frequency of emotion were caused by changes in the frequency of thinking about the event. This is the first direct evidence mapping out strengths and weaknesses for different types of affective forecasts and the factors that contribute to this pattern. (PsycINFO Database Record (c) 2019 APA, all rights reserved)
Mind the gap: trajectory of cognitive development in young individuals with sickle cell disease: a cross-sectional study
STUDY OBJECTIVES: Compared to typically developing children and young adults (CYA-TD), those living with Sickle Cell Disease (CYA-SCD) experience more cognitive difficulties, particularly with executive function. Few studies have examined the relative importance of silent cerebral infarction (SCI), haemoglobin and arterial oxygen content on age-related cognitive changes using cross-sectional or longitudinal (developmental trajectory) data. This study presents cohort data from a single timepoint to inform studies with multiple timepoints. METHODS: We compared cross-sectional raw and scaled scores as age-related changes in cognition (trajectories) in CYA-SCD and age-and ethnicity-matched CYA-TD. We also compared cross-sectional age-related changes in cognition (trajectories) in CYA-SCD with and without SCI to CYA-TD. General cognitive abilities were assessed using Wechsler Intelligence Scales, including the Verbal Comprehension Index (VCI) and Perceptual Reasoning Index (PRI) underpinning IQ. Executive function was evaluated using the Delis-Kaplan Executive Function System (D-KEFS) Tower subtest and the Behaviour Rating Inventory of Executive Function (BRIEF) questionnaire. SCI were identified from contemporaneous 3 T MRI; participants with overt stroke were excluded. Recent haemoglobin was available and oxygen saturation (SpO2) was measured on the day of the MRI. RESULTS: Data were available for 120 CYA-SCD [62 male; age = 16.78 ± 4.79 years; 42 (35%) with SCI] and 53 CYA-TD (23 male; age = 17.36 ± 5.16). Compared with CYA-TD, CYA-SCD experienced a delayed onset in VCI and slower rate of development for BRIEF Global Executive Composite, Metacognition Index (MI), and Behaviour Regulation Index. The rate of executive function development for the BRIEF MI differed significantly between CYA-TD and CYA-SCD, with those with SCI showing a 26% delay compared with CYA-TD. For CYA-SCD with SCI, arterial oxygen content explained 22% of the variance in VCI and 37% in PRI, while haemoglobin explained 29% of the variance in PRI. CONCLUSION: Age-related cognitive trajectories of CYA-SCD may not be impaired but may progress more slowly. Longitudinal studies are required, using tests unaffected by practice. In addition to initiation of medical treatment, including measures to improve arterial oxygen content, early cognitive intervention, educational support, and delivery of extracurricular activities could support cognitive development for CYA-SCD.Graphical Abstract
- …