Skip to main content

Breadcrumb

  1. ACCESS Home
  2. Support
  3. Knowledge Base
  4. Knowledge Base Resources

Knowledge Base Resources

These resources are contributed by researchers, facilitators, engineers, and HPC admins. Please upvote resources you find useful!
Add a Resource

Filters

Topics

  • Show all (63)
  • (-) parallelization (16)
  • training (5)
  • cuda (4)
  • mpi (4)
  • optimization (4)
  • gpu (3)
  • openmp (3)
  • performance-tuning (3)
  • cloud-computing (2)
  • data-analysis (2)
  • gis (2)
  • benchmarking (1)
  • big-data (1)
  • c (1)
  • compiling (1)
  • cybersecurity (1)
  • data-management (1)
  • file-transfer (1)
  • finite-element-analysis (1)
  • fluid-dynamics (1)
  • github (1)
  • globus (1)
  • jetstream (1)
  • lustre (1)
  • machine-learning (1)
  • matlab (1)

Topics

  • Show all (63)
  • (-) parallelization (16)
  • training (5)
  • cuda (4)
  • mpi (4)
  • optimization (4)
  • gpu (3)
  • openmp (3)
  • performance-tuning (3)
  • cloud-computing (2)
  • data-analysis (2)
  • gis (2)
  • benchmarking (1)
  • big-data (1)
  • c (1)
  • compiling (1)
  • cybersecurity (1)
  • data-management (1)
  • file-transfer (1)
  • finite-element-analysis (1)
  • fluid-dynamics (1)
  • github (1)
  • globus (1)
  • jetstream (1)
  • lustre (1)
  • machine-learning (1)
  • matlab (1)

Programming Language

  • python (3)
  • c++ (2)
  • fortran (1)

Programming Language

  • python (3)
  • c++ (2)
  • fortran (1)

Science Domain

  • bioinformatics (1)

Science Domain

  • bioinformatics (1)

Skill Level

  • intermediate (14)
  • advanced (8)
  • beginner (6)

Content Type

  • learning (11)
  • tool (3)
  • documentation (2)

Skill Level

  • intermediate (14)
  • advanced (8)
  • beginner (6)

Content Type

  • learning (11)
  • tool (3)
  • documentation (2)
Cornell Virtual Workshop
1
  • Roadmaps in Cornell Virtual Workshop
  • Search for topics
Cornell Virtual Workshop is a comprehensive training resource for high performance computing topics. The Cornell University Center for Advanced Computing (CAC) is a leader in the development and deployment of Web-based training programs. Our Cornell Virtual Workshop learning platform is designed to enhance the computational science skills of researchers, accelerate the adoption of new and emerging technologies, and broaden the participation of underrepresented groups in science and engineering. Over 350,000 unique visitors have accessed Cornell Virtual Workshop training on programming languages, parallel computing, code improvement, and data analysis. The platform supports learning communities around the world, with code examples from national systems such as Frontera, Stampede2, and Jetstream2.
jetstreammatlabcloud-computingdata-analysisperformance-tuningparallelizationfile-transferglobusslurmtrainingcudamatlabpythonrmpi
1 Like

Login to like
Type
learning
Level
Beginner, Intermediate, Advanced
NCSA HPC Training Moodle
1
  • NCSA HPC Training Moodle Site
Self-paced tutorials on high-end computing topics such as parallel computing, multi-core performance, and performance tools. Other related topics include 'Cybersecurity for End Users' and 'Developing Webinar Training.' Some of the tutorials also offer digital badges. Many of these tutorials were previously offered on CI-Tutor. A list of open access training courses are provided below. Parallel Computing on High-Performance Systems Profiling Python Applications Using an HPC Cluster for Scientific Applications Debugging Serial and Parallel Codes Introduction to MPI Introduction to OpenMP Introduction to Visualization Introduction to Performance Tools Multilevel Parallel Programming Introduction to Multi-core Performance Using the Lustre File System
performance-tuningprofilingparallelizationlustretrainingworkforce-developmentopenmppythonmpicybersecurity
1 Like

Login to like
Type
learning
Level
Beginner, Intermediate
Bioinformatics Workflow Management with Nextflow
0
  • https://www.nextflow.io/
  • https://www.nextflow.io/docs/latest/index.html
Nextflow is an open-source, domain-specific language and workflow manager designed for the execution and coordination of scientific and data-intensive computational workflows. It was specifically created to address the challenges faced by researchers and scientists when dealing with complex and scalable computational pipelines, particularly in fields such as bioinformatics, genomics, and data analysis. Here provided some links to start with.
cloud-computingparallelizationdata-managementbioinformaticstraining
0 Likes

Login to like
Type
documentation
Level
Beginner, Intermediate
Benchmarking with a cross-platform open-source flow solver, PyFR
0
  • PyFR documentation
  • PyFR source code from Github
  • Discourse channel for discussions and help
What is PyFR and how does it solve fluid flow problems? PyFR is an open-source Computational Fluid Dynamics (CFD) solver that is based on Python and employs the high-order Flux Reconstruction technique. It effectively solves fluid flow problems by utilizing streaming architectures, making it suitable for complex fluid dynamics simulations. How does PyFR achieve scalability on clusters with CPUs and GPUs? PyFR achieves scalability by leveraging distributed memory parallelism through the Message Passing Interface (MPI). It implements persistent, non-blocking MPI requests using point-to-point (P2P) communication and organizes kernel calls to enable local computations while exchanging ghost states. This design approach allows PyFR to efficiently operate on clusters with heterogeneous architectures, combining CPUs and GPUs. Why is PyFR valuable for benchmarking clusters? PyFR's exceptional performance has been recognized by its selection as a finalist in the ACM Gordon Bell Prize for High-Performance Computing. It demonstrates strong-scaling capabilities by effectively utilizing low-latency inter-GPU communication and achieving strong-scaling on unstructured grids. PyFR has been successfully benchmarked with up to 18,000 NVIDIA K20X GPUs on Titan, showcasing its efficiency in handling large-scale simulations.
finite-element-analysisbenchmarkingparallelizationgithubfluid-dynamicsopenmpic++cudampi
0 Likes

Login to like
Type
tool
Level
Intermediate
MPI Resources
0
  • Easy MPI Tutorial
  • Open MPI documentation
Workshop for beginners and intermediate students in MPI which includes helpful exercises. Open MPI documentation.
parallelizationmpi
0 Likes

Login to like
Type
learning
Level
Beginner, Intermediate
GDAL Multi-threading
0
  • GDAL Multi-threading
Multi-threading guidance when using GDAL.
parallelizationgis
0 Likes

Login to like
Type
learning
Level
Intermediate
GPU Acceleration in Python
0
  • GPU Acceleration in Python
This tutorial explains how to use Python for GPU acceleration with libraries like CuPy, PyOpenCL, and PyCUDA. It shows how these libraries can speed up tasks like array operations and matrix multiplication by using the GPU. Examples include replacing NumPy with CuPy for large datasets and using PyOpenCL or PyCUDA for more control with custom GPU kernels. It focuses on practical steps to integrate GPU acceleration into Python programs.
machine-learningbig-datadata-analysisoptimizationparallelizationgpucudapython
0 Likes

Login to like
Type
learning
Level
Beginner, Intermediate
Raftlib: Open Source library for concurrent data processing pipelines
0
  • RaftLib
Raftlib is an open-source C++ Library that provides a framework for implementing parallel and concurrent data processing pipelines. It is designed to simplify the development of high-performance data processing applications by abstracting away the complexities of parallelism, concurrency, and data flow management. It enables stream/data-flow parallel computation by linking parallel compute kernels together using simple right shift operators, similar to C++ streams for string manipulation. RaftLib eliminates the need for explicit usage of traditional threading libraries such as pthreads, std::thread, or OpenMP, which can lead to non-deterministic behavior when misused.
parallelizationpthreadsopenmp
0 Likes

Login to like
Type
tool
Level
Intermediate, Advanced
OpenMP and Multithreaded Jobs in GRASS
0
  • OpenMP and Multithreaded jobs in GRASS
Techniques and support for multithreaded geospatial data processing in GRASS.
parallelizationgisopenmp
0 Likes

Login to like
Type
tool
Level
Intermediate
Advanced Compilers: The Self-Guided Online Course
0
  • Cornell's Advanced Compilers
This is a self guided online course on compilers. The topics covered throughout the course include universal compilers topics like intermediate representations, data flow, and “classic” optimizations as well as more research focusedtopics such as parallelization, just-in-time compilation, and garbage collection.
optimizationparallelizationtrainingcompiling
0 Likes

Login to like
Type
learning
Level
Advanced
Numba: Compiler for Python
0
  • Numba Compiler
Numba is a Python compiler designed for accelerating numerical and array operations, enabling users to enhance their application's performance by writing high-performance functions in Python itself. It utilizes LLVM to transform pure Python code into optimized machine code, achieving speeds comparable to languages like C, C++, and Fortran. Noteworthy features include dynamic code generation during import or runtime, support for both CPU and GPU hardware, and seamless integration with the Python scientific software ecosystem, particularly Numpy.
vectorizationoptimizationperformance-tuningparallelization
0 Likes

Login to like
Type
documentation
Level
Intermediate, Advanced
Examples of Thrust code for GPU Parallelization
0
  • thrust_ex.txt
Some examples for writing Thrust code. To compile, download the CUDA compiler from NVIDIA. This code was tested with CUDA 9.2 but is likely compatible with other versions. Before compiling change extension from thrust_ex.txt to thrust_ex.cu. Any code on the device (GPU) that is run through a Thrust transform is automatically parallelized on the GPU. Host (CPU) code will not be. Thrust code can also be compiled to run on a CPU for practice.
parallelizationgpucuda
0 Likes

Login to like
Type
learning
Level
Intermediate, Advanced
Performance Engineering Of Software Systems
0
  • MIT Performance Engineering Of Software Systems Homepage
A class from MITOpenCourseware that gives a hands on approach to building scalable and high-performance software systems. Topics include performance analysis, algorithmic techniques for high performance, instruction-level optimizations, caching optimizations, parallel programming, and building scalable systems.
optimizationparallelizationtraining
0 Likes

Login to like
Type
learning
Level
Intermediate, Advanced
Introduction to Parallel Computing Tutorial
0
  • Introduction to Parallel Computing Tutorial
The tutorial is intended to provide a brief overview of the extensive and broad topic of Parallel Computing. It covers the basics of parallel computing, and is intended for someone who is just becoming acquainted with the subject .
parallelization
0 Likes

Login to like
Type
learning
Level
Beginner
Thrust resources
0
  • Thrust tutorial from Nvidia
  • Thrust documentation
Thrust is a CUDA library that optimizes parallelization on the GPU for you. The Thrust tutorial is great for beginners. The documentation is helpful for anyone using Thrust.
parallelizationgpuresources
0 Likes

Login to like
Type
learning
Level
Intermediate, Advanced