19 research outputs found

    Interplay Between Exercise and Gut Microbiome in the Context of Human Health and Performance

    Get PDF
    Gut microbiota and exercise have recently been shown to be interconnected. Both moderate and intense exercise are typically part of the training regimen of endurance athletes, but they exert different effects on health. Moderate exercise has positive effects on the health of average athletes, such as a reduction in inflammation and intestinal permeability and an improvement in body composition. It also induces positive changes in the gut microbiota composition and in the microbial metabolites produced in the gastrointestinal tract. Conversely, intense exercise can increase gastrointestinal epithelial wall permeability and diminish gut mucus thickness, potentially enabling pathogens to enter the bloodstream. This, in turn, may contribute to the increase in inflammation levels. However, elite athletes seem to have a higher gut microbial diversity, shifted toward bacterial species involved in amino acid biosynthesis and carbohydrate/fiber metabolism, consequently producing key metabolites such as short-chain fatty acids. Moreover, rodent studies have highlighted a bidirectional relationship, with exercise impacting the gut microbiota composition while the microbiota may influence performance. The present review focuses on gut microbiota and endurance sports and how this interconnection depends upon exercise intensity and training. After pointing out the limits of the studies so far available, we suggest that taking into account the microbiota composition and its metabolic contribution to human host health could help in monitoring and modulating athletes' health and performance. Such an integrated approach should help in the design of microbiome-based solutions for health or performance

    Automatic Collapsing of Non-Rectangular Loops

    Get PDF
    International audienceLoop collapsing is a well-known loop transformation which combines some loops that are perfectly nested into one single loop. It allows to take advantage of the whole amount of parallelism exhibited by the collapsed loops, and provides a perfect load balancing of iterations among the parallel threads. However, in the current implementations of this loop optimization , as the ones of the OpenMP language, automatic loop collapsing is limited to loops with constant loop bounds that define rectangular iteration spaces, although load imbalance is a particularly crucial issue with non-rectangular loops. The OpenMP language addresses load balance mostly through dynamic runtime scheduling of the parallel threads. Nevertheless, this runtime schedule introduces some unavoidable execution-time overhead, while preventing to exploit the entire parallelism of all the parallel loops. In this paper, we propose a technique to automatically collapse any perfectly nested loops defining non-rectangular iteration spaces, whose bounds are linear functions of the loop iterators. Such spaces may be triangular, tetrahedral, trapezoidal, rhomboidal or parallelepiped. Our solution is based on original mathematical results addressing the inversion of a multi-variate polynomial that defines a ranking of the integer points contained in a convex polyhedron. We show on a set of non-rectangular loop nests that our technique allows to generate parallel OpenMP codes that outperform the original parallel loop nests, parallelized either by using options " static " or " dynamic " of the OpenMP-schedule clause

    VMAD: a Virtual Machine for Advanced Dynamic Analysis of Programs

    Get PDF
    International audienceIn this paper, we present a virtual machine, VMAD (Virtual Machine for Advanced Dynamic analysis), enabling an efficient implementation of advanced profiling and analysis of programs. VMAD is organized as a sequence of basic operations where external modules associated to specific profiling strategies are dynamically loaded when required. The program binary files handled by VMAD are previously instrumented at compile time to include necessary data, instrumentation instructions and callbacks to the VM. Dynamic information, such as memory locations of launched modules, are patched at startup in the binary file. The LLVM compiler has been extended to automatically instrument programs according to both VMAD and the handled profiling strategies. VMAD's potential is illustrated by presenting a profiling strategy dedicated to loop nests. It collects all memory addresses that are accessed during a selected number of successive iterations of each loop. The collected addresses are consumed by an analysis process trying to interpolate addresses successively accessed through each memory reference as a linear function of some virtual loop indices. This profiling strategy using VMAD has been run on some of the SPEC2006 and Pointer Intensive benchmark suites, showing a very low time overhead, in most cases

    Multifor for Multicore

    Get PDF
    International audienceWe propose a new programming control structure called ''multifor'', allowing to take advantage of parallelization models that were not naturally attainable with the polytope model before. In a multifor-loop, several loops whose bodies are run simultaneously can be defined. Respective iteration domains are mapped onto each other according to a run frequency -- the grain -- and a relative position -- the offset --. Execution models like dataflow, stencil computations or MapReduce can be represented onto one referential iteration domain, while still exhibiting traditional polyhedral code analysis and transformation opportunities. Moreover, this construct provides ways to naturally exploit hybrid parallelization models, thus significantly improving parallelization opportunities in the multicore era. Traditional polyhedral software tools are used to generate the corresponding code. Additionally, a promising perspective related to non-linear mapping of iteration spaces is also presented, yielding to run a loop nest inside any other one by solving the problem of inverting "ranking Ehrhart polynomials"

    Loop-based Modeling of Parallel Communication Traces

    Get PDF
    This paper describes an algorithm that takes a trace of a distributed program and builds a model of all communications of the program. The model is a set of nested loops representing repeated patterns. Loop bodies collect events representing communication actions performed by the various processes, like sending or receiving messages, and participating in collective operations. The model can be used for compact visualization of full executions, for program understanding and debugging, and also for building statistical analyzes of various quantitative aspects of the program's behavior. The construction of the communication model is performed in two phases. First, a local model is built for each process, capturing local regularities; this phase is incremental and fast, and can be done on-line, during the execution. The second phase is a reduction process that collects, aligns, and finally merges all local models into a global, system-wide model. This global model is a compact representation of all communications of the original program, capturing patterns across groups of processes. It can be visualized directly and, because it takes the form of a sequence of loop nests, can be used to replay the original program's communication actions. Because the model is based on communication events only, it completely ignores other quantitative aspects like timestamps or messages sizes. Including such data would in most case break regularities, reducing the usefulness of trace-based modeling. Instead, the paper shows how one can efficiently access quantitative data kept in the original trace(s), by annotating the model and compiling data scanners automatically.Ce rapport de recherche décrit un algorithme qui prend en entrée la trace d'un programme distribué, et construit un modèle de l'ensemble des communications du programme. Le modèle prend la forme d'un ensemble de boucles imbriquées représentant la répétition de motifs de communication. Le corps des boucles regroupe des événements représentant les actions de communication réalisées par les différents processus impliqués, tels que l'envoi et la réception de messages, ou encore la participation à des opérations collectives. Le modèle peut servir à la visualisation compact d'exécutions complètes, à la compréhension de programme et au debugging, mais également à la construction d'analyses statistiques de divers aspects quantitatifs du comportement du programme. La construction du modèle de communication s'effectue en deux phases. Premièrement, un modèle local est construit au sein de chaque processus, capturant les régularités locales~; cette phase est incrémentale et rapide, et peut être réalisée au cours de l'exécution. La seconde phase est un processus de réduction qui rassemble, aligne, et finalement fusionne tous les modèles locaux en un modèle global décrivant la totalité du système. Ce modèle global est une représentation compacte de toutes les communications du programme original, représentant des motifs de communication entre groupes de processus. Il peut être visualisé directement et, puisqu'il prend la forme d'un ensemble de nids de boucles, peut servir à rejouer les opérations de communication du programme initial. Puisque le modèle construit se base uniquement sur les opérations de communication, il ignore complètement d'autres données quantitatives, telles que les informations chronologiques, ou les tailles de messages. L'inclusion de telles données briserait dans la plupart des cas les régularités topologiques, réduisant l'efficacité de la modélisation par boucles. Nous préférons, dans ce rapport, montrer comment, grâce au modèle construit, il est possible d'accéder efficacement aux données quantitatives si celles-ci sont conservées dans les traces individuelles, en annotant le modèle et en l'utilisant pour compiler automatiquement des programmes d'accès aux données

    Effect of five hours of mixed exercise on urinary nitrogen excretion in healthy moderate-to-well-trained young adults

    Get PDF
    IntroductionCarbohydrates and fats are the primary energy substrates during exercise, but proteins can also contribute. When proteins are degraded in the body, the amino groups are mainly converted to urea and excreted. Therefore, nitrogen excretion has been used as a marker of protein degradation, but a clear conclusion has yet to be reached on the effect of exercise on nitrogen excretion. Thus, we tested whether exercise increases nitrogen excretion.MethodsFifteen young, healthy, moderate-to-well-trained participants (4 females, 11 males, VO2max 54.4 ± 1.7 mL·kg−1·min−1; mean ± SEM) participated in a randomized, balanced cross-over design investigation consisting of 1 day with 5 h of exercise (exercise day, EX) and 1 day with no exercise (control day, CON). The participants recorded their dietary intake the day before from 16:00 and throughout the intervention day. They then repeated these dietary intakes on the second trial day. A standardized lunch was provided on both days. In addition, participants were allowed to consume almost protein-free snacks in EX to ensure the same energy balance during both trial days. Urine was collected throughout the whole testing period, and urinary 3-methylhistidine (3-MH) excretion was measured to examine muscular catabolism. The sweat rate was calculated during the exercise period.Results and discussionThe urinary nitrogen and 3-MH excretions did not differ significantly between EX and CON (p = 0.764 and p = 0.953). The sweat rate was 2.55 ± 0.25 L in EX and 0.14 ± 0.15 L in CON (p < 0.001), and by estimating sweat nitrogen excretion, total nitrogen excretion was shown to differ with exercise. Our results showed that 5 hours of mixed exercise did not significantly impact urinary nitrogen and 3-MH excretions in healthy moderate-to-well-trained young adults

    A Novel Mutation Involving the Initiation Codon of FGF3 in a Family Described with Complete Inner Ear Agenesis, Microtia and Major Microdontia (LAMM Syndrome)

    Get PDF
    LAMM syndrome (OMIM #610706) is a rare autosomal recessive syndrome characterized by the association of Michel aplasia, microdontia and malformation of the external ear. Different mutations in FGF3 gene were reported in several families presenting with this syndrome. Clinical features and genetic results observed in a family with LAMM syndrome are reported. The diagnosis of isolated Michel aplasia was initially made in this family composed of two affected children. Microtia and microdontia was recently evidenced in both patients suggesting the diagnosis of LAMM syndrome. New auditory and orodental iconography was performed permitting to describe the patients’ phenotype in depth and to report rare findings of LAMM syndrome. The sequencing of FGF3 gene identified a novel missense mutation (c.2T>G), substituting the first initiator methionine in arginine, in the fibroblast growth factor 3 (FGF3) at the homozygous state in both patients. LAMM syndrome was confirmed and appropriate genetic counseling performed

    Nephrocalcinosis (enamel renal syndrome) caused by autosomal recessive FAM20A mutations

    Get PDF
    Calcium homeostasis requires regulated cellular and interstitial systems interacting to modulate the activity and movement of this ion. Disruption of these systems in the kidney results in nephrocalcinosis and nephrolithiasis, important medical problems whose pathogenesis is incompletely understood

    A Static-Dynamic Collaborative Framework for Nested Loops Instrumentation and Profiling

    No full text
    Runtime information extraction is usually achieved using some code instrumentations, where additional instructions are inserted in order to collect relevant values as accessed memory locations, reached variable values or taken branches. In order to minimize the time overhead, a usual strategy is to run instrumented code exclusively during some execution time samples. Hence an intended dynamic mechanism has to provide a way to alternate quickly between instrumented and non-instrumented code, without altering the code semantics. Since loop nests usually represent a major part of the whole execution time of programs, they are important optimization targets. Obviously, since their statements are run many times, the time overhead induced from instrumentation is even more difficult to minimize. In this paper, we present a static-dynamic collaborative framework dedicated to nested loops. Its goal is to catch some linearity of the performed memory accesses and of the loop trip counts, serving as a launching point for further optimizations as data prefetching or speculative parallelization. Interesting cases in instrumentation are revealed by indirect memory accesses or pointer arithmetic based accesses, as they cannot be determined statically. Our framework introduces a new pragma inserted in the higher level source code and delimiting the regions for instrumentation. Next, it extends the LLVM compiler to process the marked regions and statically create an instrumented version of the code. For a minimal time overhead, we use a sampling strategy where we instrument the first iterations of each loop of the considered nest. At runtime, the executions of instrumented and non-instrumented versions alternate, thanks to a runtime system which guides the execution flow by patching the binary code. Based on the acquired information related to accessed memory addresses and loop trip counts, the runtime system interpolates on the loop indices to identify linear functions
    corecore