72 research outputs found

    Do mammals make all their own inositol hexakisphosphate?

    Get PDF
    A highly specific and sensitive mass assay for inositol hexakisphosphate (InsP6) was characterized. This centres around phosphorylating InsP6 with [32P]ATP using a recombinant InsP6 kinase from Giardia lambia, followed by HPLC of the 32P-labelled products with an internal [3H]InsP7 standard. This assay was used to quantify InsP6 levels in a variety of biological samples. Concentrations of InsP6 in rat tissues varied from 10–20 μM (assuming 64% of wet weight of tissue is cytosol water), whereas using the same assumption axenic Dictyostelium discoideum cells contained 352±11 μM InsP6. HeLa cells were seeded at low density and grown to confluence, at which point they contained InsP6 levels per mg of protein similar to rat tissues. This amounted to 1.952±0.117 nmol InsP6 per culture dish, despite the cells being grown in serum shown to contain no detectable (less than 20 pmol per dish) InsP6. These results demonstrate that mammalian cells synthesize all their own InsP6. Human blood was analysed, and although the white cell fraction contained InsP6 at a concentration comparable with other tissues, in serum and platelet-free plasma no InsP6 was detected (<1 nM InsP6). Human urine was also examined, and also contained no detectable (<5 nM) InsP6. These results suggest that dietary studies purporting to measure InsP6 at micromolar concentrations in human plasma or urine may not have been quantifying this inositol phosphate. Therefore claims that administrating InsP6 in the diet or applying it topically can produce health benefits by increasing extracellular InsP6 levels may require reassessment

    Mapping Deviation: A Technique to Adapt or to Guard Loop Transformation Intuitions for Legality

    Get PDF
    International audienceParallel architectures are now omnipresent in mainstream electronic devices and exploiting them efficiently is a challenge for all developers. Hence, they need the support of languages, libraries and tools to assist them in the optimization or parallelization task. Compilers can provide a major help by automating this work. However they are very fragile black-boxes. A compiler may take a bad optimization decision because of imprecise heuristics or may turn off an optimization because of imprecise analyses, without providing much control or feedback to the end user. To address this issue, we introduce mapping deviation, a new compiler technique that aims at providing a useful feedback on the semantics of a given program restructuring. Starting from a transformation intuition a user or a compiler wants to apply, our algorithm studies its cor-rectness and can suggest changes or conditions to make it possible rather than being limited to the classical go/no-go answer. This algorithm builds on state-of-the-art polyhedral representation of programs and provides a high flexibility. We present two example applications of this technique: improving semi-automatic optimization tools for programmers and automatically designing runtime tests to check the correctness of a transformation for compilers

    Colonial America

    Get PDF
    The first permanent British settlement in what became the United States was established in 1607, nearly 170 years prior to the American declaration of independence. This chapter examines the economic development of the British North American colonies that became the United States. As it describes, abundant natural resources and scarce labor and capital contributed to the remarkable growth in the size of the colonial economy, and allowed the free white colonial population to enjoy a relatively high standard of living. There was not, however, much improvement over time in living standards. Patterns of factor abundance also played an important role in shaping colonial institutions, encouraging reliance on indentured and enslaved labor as well as the development of representative government. For most of the colonial era, the colonists happily accepted their relationship to Britain. After 1763, however, changes in British policies following the end of the Seven Years War created growing tensions with the colonists and ultimately led to the colonies to declare their independence

    AN5D: Automated Stencil Framework for High-Degree Temporal Blocking on GPUs

    Full text link
    Stencil computation is one of the most widely-used compute patterns in high performance computing applications. Spatial and temporal blocking have been proposed to overcome the memory-bound nature of this type of computation by moving memory pressure from external memory to on-chip memory on GPUs. However, correctly implementing those optimizations while considering the complexity of the architecture and memory hierarchy of GPUs to achieve high performance is difficult. We propose AN5D, an automated stencil framework which is capable of automatically transforming and optimizing stencil patterns in a given C source code, and generating corresponding CUDA code. Parameter tuning in our framework is guided by our performance model. Our novel optimization strategy reduces shared memory and register pressure in comparison to existing implementations, allowing performance scaling up to a temporal blocking degree of 10. We achieve the highest performance reported so far for all evaluated stencil benchmarks on the state-of-the-art Tesla V100 GPU

    Scanning Polyhedra with DO Loops

    No full text
    Supercompilers perform complex program transformations which often result in new loop bounds. This paper shows that, under the usual assumptions in automatic parallelization, most transformations on loop nests can be expressed as affine transformations on integer sets de ned by polyhedra and that the new loop bounds can be computed with algorithms using Fourier&apos;s pairwise elimination method although it is not exact for integer sets. Sufficient conditions to use pairwise elimination on integer sets and to extend it to pseudo-linear constraints are also given. A tradeo has to be made between dynamic overhead due to some bound slackness and compilation complexity but the resulting code is always correct. These algorithms can be used to interchange or block loops regardless of the loop bounds or the blocking strategy and to safely exchange array parts between two levels of a memory hierarchy or between neighboring processors in a distributed memory machine

    Efficient Intraprocedural Array Bound Checking

    No full text
    Array bound checking is critical for code safety and debugging but users are not ready to trade much execution time for it. A considerable research work has been carried out during the past 25 years but experimental results are scarce. Commercial implementations are limited to intraprocedural array bound checking and are not really fulfilling user expectations for compilation and execution times
    corecore