28 research outputs found

    MECCA - KPP Fortran to CUDA source-to-source pre-processor - Alpha Version

    No full text
    <p>The MECCA - KPP parser is written in the Python programming language and generates CUDA compatible solvers, by parsing the auto-generated FORTRAN code output by the KPP preprocessor.</p> <p><br> The user executes the parser from the messy/util directory to transform the code. The parser modifies the messy/smcl/messy_mecca_kpp.f90 file and places a single call to the CUDA source file that contains the accelerated code (messy/smcl/messy_mecca_kpp_acc.cu) and a wrapper function for issuing the parallel kernels and copying the data to and from the GPU.</p&gt

    Optimization techniques for fine-grained communication in PGAS environments

    No full text
    Partitioned Global Address Space (PGAS) languages promise to deliver improved programmer productivity and good performance in large-scale parallel machines. However, adequate performance for applications that rely on fine-grained communication without compromising their programmability is difficult to achieve. Manual or compiler assistance code optimization is required to avoid fine-grained accesses. The downside of manually applying code transformations is the increased program complexity and hindering of the programmer productivity. On the other hand, compiler optimizations of fine-grained accesses require knowledge of physical data mapping and the use of parallel loop constructs. This thesis presents optimizations for solving the three main challenges of the fine-grain communication: (i) low network communication efficiency; (ii) large number of runtime calls; and (iii) network hotspot creation for the non-uniform distribution of network communication, To solve this problems, the dissertation presents three approaches. First, it presents an improved inspector-executor transformation to improve the network efficiency through runtime aggregation. Second, it presents incremental optimizations to the inspector-executor loop transformation to automatically remove the runtime calls. Finally, the thesis presents a loop scheduling loop transformation for avoiding network hotspots and the oversubscription of nodes. In contrast to previous work that use static coalescing, prefetching, limited privatization, and caching, the solutions presented in this thesis focus cover all the aspect of fine-grained communication, including reducing the number of calls generated by the compiler and minimizing the overhead of the inspector-executor optimization. A performance evaluation with various microbenchmarks and benchmarks, aiming at predicting scaling and absolute performance numbers of a Power 775 machine, indicates that applications with regular accesses can achieve up to 180% of the performance of hand-optimized versions, while in applications with irregular accesses the transformations are expected to yield from 1.12X up to 6.3X speedup. The loop scheduling shows performance gains from 3-25% for NAS FT and bucket-sort benchmarks, and up to 3.4X speedup for the microbenchmarks.DOCTORAT EN ARQUITECTURA DE COMPUTADORS (Pla 2007

    Accelerated chemical kinetics in the EMAC chemistry-climate model

    No full text
    The global climate model ECHAM/MESSy Atmospheric Chemistry (EMAC) is used to study climate change and air quality scenarios. The EMAC model is constituted by a nonlocal dynamical part with low scalability, and local physical/chemical processes with high scalability. The EMAC chemistry-climate model does not benefit from the support of accelerators which are nowadays installed in many HPC systems. We study strategies to offload the calculation of the atmospheric chemistry to accelerator technologies (GPU and Intel MIC), as in typical model configurations this is the most computational resource-demanding subtask. The proposed solutions extend the Kinetic Pre Processor (KPP) general purpose open-source software tool used in atmospheric chemistry

    MECCA - KPP Fortran to CUDA source-to-source pre-processor

    No full text
    <p>This is the first release of the parser. The code was tested and found to be stable with the most commonly used configurations. The distribution includes a self-contained unit test.</p> <p>This release corresponds to the source code described in Journal of Open Research Software.</p&gt

    GPU-accelerated atmospheric chemical kinetics in the ECHAM/MESSy (EMAC) Earth system model (version 2.52)

    No full text
    Abstract. This paper presents an application of GPU accelerators in Earth system modeling. We focus on atmospheric chemical kinetics, one of the most computationally intensive tasks in climate–chemistry model simulations. We developed a software package that automatically generates CUDA kernels to numerically integrate atmospheric chemical kinetics in the global climate model ECHAM/MESSy Atmospheric Chemistry (EMAC), used to study climate change and air quality scenarios. A source-to-source compiler outputs a CUDA-compatible kernel by parsing the FORTRAN code generated by the Kinetic PreProcessor (KPP) general analysis tool. All Rosenbrock methods that are available in the KPP numerical library are supported.Performance evaluation, using Fermi and Pascal CUDA-enabled GPU accelerators, shows achieved speed-ups of 4. 5 ×  and 20. 4 × , respectively, of the kernel execution time. A node-to-node real-world production performance comparison shows a 1. 75 ×  speed-up over the non-accelerated application using the KPP three-stage Rosenbrock solver. We provide a detailed description of the code optimizations used to improve the performance including memory optimizations, control code simplification, and reduction of idle time. The accuracy and correctness of the accelerated implementation are evaluated by comparing to the CPU-only code of the application. The median relative difference is found to be less than 0.000000001 % when comparing the output of the accelerated kernel the CPU-only code.The approach followed, including the computational workload division, and the developed GPU solver code can potentially be used as the basis for hardware acceleration of numerous geoscientific models that rely on KPP for atmospheric chemical kinetics applications. </jats:p

    MEDINA: MECCA Development in Accelerators – KPP Fortran to CUDA source-to-source Pre-processor

    No full text
    The global climate model ECHAM/MESSy Atmospheric Chemistry (EMAC) is a modular global model that simulates climate change and air quality scenarios. The application includes different sub-models for the calculation of chemical species concentrations, their interaction with land and sea, and the human interaction. The paper presents a source-to-source parser that enables support for Graphics Processing Units (GPU) by the Kinetic Pre-Processor (KPP) general purpose open-source software tool. The requirements of the host system are also described. The source code of the source-to-source parser is available under the MIT License

    Accelerating Atmospheric Chemical Kinetics for Climate Simulations

    No full text
    The study of atmospheric chemistry-climate interactions is one of today's great computational challenges. Advances in the architecture of Graphics Processing Units (GPUs) in both raw computational power and memory bandwidth sparked the interest for General-Purpose computing on graphics accelerators in scientific applications. However, the introduction of GPUs in the High Performance Computing (HPC) landscape increased the complexity of software development, due to the inherent heterogeneity requirements of programming models and design approaches, creating a gap in uptake and attainable performance in the presently available scientific community codes. This paper provides an overview of the challenges encountered when using GPU accelerators to achieve optimal performance to calculate the kinetics of chemical tracers in climate models, the techniques used to address them and the insights gained from the process. The paper presents the development of a chemical kinetics code-to-code parser to automatically generate chemical kinetics calculations on three different generations of GPU accelerators (M2070, K80, and P100). The accelerated portion of the application achieves a speedup of up to 22×, equivalent to performance gains of +19 percent up to +90 percent compared with the processor-only version, when using a cluster of 8 Nodes with dual Intel E5-2680 v3 processor and a Kepler architecture (K80), allowing faster completion of the simulations. The paper also provides practical insights and relevant considerations for the development and acceleration of complex applications

    Σχεδιασμός και αξιολόγηση μιας παράλληλης εφαρμογής συμπίεσης βίντεο Η.264 με καταμερισμό υπολογισμών για τον επεξεργαστή Cell

    No full text
    Μοντέρνοι πολυπύρηνοι επεξεργαστές με ρητά διαχειριζόμενες τοπικές μνήμες, όπως ο επεξεργαστής Cell Broadband Engine (Cell), αποτελούν από πολλές απόψεις ένα σημαντικό σημείο στην σχεδίαση επεξεργαστών για υψηλές επιδόσεις. Ο εν λόγω επεξεργαστής, από την μία πλευρά προσφέρει υψηλές επιδόσεις σε συγκεκριμένες εφαρμογές και από την άλλη πλευρά απαιτεί εκτεταμένες τροποποιήσεις στην εφαρμογή. Σχεδιάσαμε και υλοποιήσαμε την εφαρμογή c264 για τον επεξεργαστή Cell. Η εφαρμογή c264 αποτελεί μια πλήρη υλοποίηση για συμπίεση βίντεο. Η.264, βασισμένη στη βιβλιοθήκη ανοικτού λογισμικού x264. Η υλοποίηση μας επιτυγχάνει επιτάχυνση 4.5x σε έξι synergistic processing elements (SPEs), σε σύγκριση με τη σειριακή εκτέλεση της εφαρμογής στην κεντρική επεξεργαστική μονάδα power processing element (PPE). Η υλοποίηση μας λαμβάνει υπόψιν όλα τα κομμάτια της συμπίεσης και αποκαλύπτει συναφείς περιορισμούς. Η εφαρμογή c264 είναι αποτέλεσμα ανασχεδιαμσού της αρχικής εφαρμογής x264, ώστε να επιτύχουμε παραλληλοποίηση με λεπτό καταμερισμό υπολογισμών μεταξύ εργασιών για να αντιμετωπίσουμε το μικρό μέγεθος της τοπικής μνήμης των SPEs και στην αλλαγή των κοινών δομών λόγω της μη συνεκτικής μνήμης του επεξεργαστή Cell. Η ανάλυση μας επιτρέπει να εντοπίσουμε τους κύριους περιορισμούς για την περαιτέρω κλιμάκωση της παράλληλης συμπίεσης βίντεο. Η.264 για μελλοντικούς επεξεργαστές πολλών πυρήνων: (Α) η επιβάρυνση για τη διαχείριση των εργασίων μπορεί να προκαλέσει μεγάλη μείωση επιδόσεων κεντρικού επεξεργαστή, (Β) σύνθετη ροή ελέγχου στον κώδικα περιορίζει τον βαθμό του διαθέσιμου παραλληλισμού, και (Γ) μικρές on-chip μνήμες περιορίζουν την επικάλυψη της επικοινωνίας με τον υπολογισμό.Modern multi-coe processors with explictly managed local memories, such as the Cell Broadband Engine (Cell) constitute in many ways a significant departure from traditional high performance CPU designs. Such CPUs, on one hand bear the potential of higher performance in certain application domains and on the other hand require extensive application modifications. We design and implement x264, a complete H.264 video encoder for the Cell processor, based on an open source H.264 library, c264. Our implementation achieves speedups of 4.5x on six synergistic processing elements (SPEs), compared to the serial version running on the power processing element (PPE). Our work considers all parts of the encoding process and reveals related limitations. x264 constitutes an extensive redesign of the original c264 code to employ fine-grain parallelization to cope with the small size of the local memory in the SPEs and achieve replication and privatization of shared data structures due to the non-coherent Cell architecture. Our analysis allows us to identify the main limitations for further scaling H. 264 video encoding on future multi-cores: (a) overheads for task management cause a heavy burden on the single master processor, (b) complex control flow in the code limits effective parallelism, and (c) small on-chip memories limit the overlap of communication and computation

    GPU-accelerated atmospheric chemical kinetics in the ECHAM/MESSy (EMAC) Earth system model (version 2.52)

    No full text
    This paper presents an application of GPU accelerators in Earth system modeling. We focus on atmospheric chemical kinetics, one of the most computationally intensive tasks in climate–chemistry model simulations. We developed a software package that automatically generates CUDA kernels to numerically integrate atmospheric chemical kinetics in the global climate model ECHAM/MESSy Atmospheric Chemistry (EMAC), used to study climate change and air quality scenarios. A source-to-source compiler outputs a CUDA-compatible kernel by parsing the FORTRAN code generated by the Kinetic PreProcessor (KPP) general analysis tool. All Rosenbrock methods that are available in the KPP numerical library are supported.Performance evaluation, using Fermi and Pascal CUDA-enabled GPU accelerators, shows achieved speed-ups of 4. 5 ×  and 20. 4 × , respectively, of the kernel execution time. A node-to-node real-world production performance comparison shows a 1. 75 ×  speed-up over the non-accelerated application using the KPP three-stage Rosenbrock solver. We provide a detailed description of the code optimizations used to improve the performance including memory optimizations, control code simplification, and reduction of idle time. The accuracy and correctness of the accelerated implementation are evaluated by comparing to the CPU-only code of the application. The median relative difference is found to be less than 0.000000001 % when comparing the output of the accelerated kernel the CPU-only code.The approach followed, including the computational workload division, and the developed GPU solver code can potentially be used as the basis for hardware acceleration of numerous geoscientific models that rely on KPP for atmospheric chemical kinetics applications
    corecore