13 repositorios
Implementations of fundamental data-parallel operations for high-performance computing.
Distinct from Parallel Matrix Operations: Focuses on general-purpose parallel algorithms like sorting and reduction, distinct from specific scan or matrix operations.
Explore 13 awesome GitHub repositories matching scientific & mathematical computing · Parallel Algorithms. Refine with filters or upvote what's useful.
This project is a comprehensive collection of reference materials, including a language cheatsheet, a standard library reference, and a concurrency reference. It serves as a guide to modern C++ development, focusing on language syntax, standard library utilities, and template metaprogramming patterns. The repository provides specific guidance on template metaprogramming through a dedicated guide covering compile-time evaluation, type deduction, and variadic template execution. The materials cover a broad range of capabilities, including asynchronous programming, memory management, and system
Details the execution of standard library search and sort operations across multiple processor cores.
Dask es un framework de computación paralela y un programador de tareas distribuido diseñado para escalar flujos de trabajo de ciencia de datos en Python desde máquinas individuales hasta grandes clústeres. Funciona como un gestor de recursos de clúster que orquesta la lógica computacional representando las tareas y sus dependencias como grafos acíclicos dirigidos. Esta arquitectura permite al sistema automatizar la distribución de cargas de trabajo a través del hardware disponible mientras gestiona requisitos de ejecución complejos. El proyecto se distingue por un motor de evaluación perezosa que difiere las operaciones de datos hasta que se solicitan explícitamente, permitiendo la optimización global del grafo y una asignación eficiente de recursos. Incorpora el volcado de datos consciente de la memoria para evitar fallos del sistema al procesar conjuntos de datos que exceden la memoria disponible, y utiliza la fusión de grafos de tareas para combinar secuencias de operaciones en pasos de ejecución únicos, minimizando la sobrecarga de programación y la comunicación entre nodos. La plataforma proporciona una superficie de capacidades integral para el análisis de datos a gran escala, incluyendo soporte para aprendizaje automático distribuido, integración de computación de alto rendimiento y procesamiento de datos en paralelo. Ofrece herramientas extensas para la gestión del ciclo de vida del clúster, perfilado de rendimiento y monitoreo en tiempo real de la ejecución de tareas. Los usuarios pueden desplegar estos entornos en diversas infraestructuras, incluyendo hardware local, proveedores de nube, sistemas en contenedores y clústeres de computación de alto rendimiento.
Wraps standard functions into lazy execution graphs that can be evaluated in parallel across threads or distributed clusters.
GPU-Puzzles is an interactive learning environment and tutorial designed for mastering CUDA GPU kernel development. It serves as an educational tool and lab where users solve coding puzzles to understand how to map high-level logic to low-level GPU hardware instructions. The platform focuses on teaching parallel computing concepts and GPU architecture. Users practice developing parallel algorithms and managing GPU memory through a series of hands-on challenges. The environment utilizes a bridge between Python and CUDA to execute kernels and provide real-time feedback by validating outputs ag
Provides practical training in developing parallel algorithms to improve performance on CUDA-supported hardware.
Cpp-taskflow is a C++ task-parallelism framework and task graph scheduler designed to manage and execute complex dependency graphs of parallel tasks across CPU and GPU hardware. It provides a parallel algorithm library for high-performance implementations of reductions, sorts, pipelines, and iterations. The framework distinguishes itself through its ability to offload heavy computational workloads from a task graph to graphics processors for acceleration. It also includes a task profiling tool and a performance analysis interface for visualizing task execution flow and dependency structures t
Ships a library of fundamental data-parallel operations, including parallel reductions and sorts.
Taskflow is a C++ task-parallel framework designed to build high-performance parallel workflows and complex dependency graphs. It provides a programming model that organizes computational work into directed acyclic graphs, enabling developers to manage concurrency, resource scheduling, and task dependencies across multi-core CPUs and GPU accelerators. The framework distinguishes itself through its ability to orchestrate heterogeneous systems, allowing for the integration of hardware-accelerated kernels and memory operations into unified execution pipelines. It supports dynamic runtime subflow
Provides a comprehensive suite of parallel algorithms for data processing, such as sorting, reduction, and prefix sums.
jetson-inference is a set of libraries and tools for executing optimized deep learning models on embedded GPU hardware. Its primary purpose is to enable real-time computer vision and AI inference at the edge with low latency and high throughput. The project distinguishes itself through high-performance streaming analytics and the ability to execute concurrent AI pipelines on auto-grade silicon. It provides specialized support for multi-sensor stream processing, utilizing zero-copy data transport to load camera frames directly into GPU memory. The codebase covers a broad surface of capabiliti
Provides GPU-accelerated implementations of fundamental data-parallel operations like sort, scan, and reduction.
Crossbeam is a concurrency toolkit for Rust providing low-level primitives for writing multi-threaded programs. It focuses on lock-free data structures and memory management primitives designed for shared-memory concurrent environments. The project includes a work-stealing scheduler that uses double-ended queues to balance workloads across multiple processor cores. This system enables the implementation of work-stealing deques to distribute tasks and prevent bottlenecks. The toolkit covers broader capabilities for parallel algorithm development, multi-threaded task scheduling, and general co
Enables the development of complex parallel algorithms while maintaining strict data consistency.
oneAPI Threading Building Blocks (oneTBB)
Provides parallel versions of common algorithms like for_each, reduce, and sort for data-parallel programming.
Offloads C++17 parallel algorithms from the STL to NVIDIA GPUs without requiring directives or annotations.
CppGuide is a curated collection of educational resources and practical guides focused on C++ server development, Linux kernel internals, concurrent programming, network protocols, and security exploitation. It provides structured learning paths for backend developers, covering everything from interview preparation to building high-performance network servers and understanding operating system fundamentals. The guide distinguishes itself by offering in-depth, hands-on tutorials that walk through real-world implementations, including building a Redis-like server from scratch, designing custom
Provides tutorials on executing standard algorithms in parallel using C++ execution policies.
Thrust es una librería de algoritmos paralelos en C++ que proporciona un conjunto de interfaces inspiradas en la librería estándar para su ejecución en hardware multinúcleo y aceleradores. Sirve como una librería de datos acelerada por CUDA y una interfaz de programación paralela genérica diseñada para permitir el procesamiento de datos de alto rendimiento a través de GPUs y CPUs. El proyecto implementa una capa de abstracción portátil que permite flujos de trabajo de computación heterogénea, permitiendo que la misma lógica de algoritmo central se ejecute en diferentes aceleradores de hardware. Esto se logra mediante un diseño de política de programación genérica y un modelo de ejecución agnóstico al backend que mapea llamadas funcionales de alto nivel a hardware paralelo. La librería cubre una amplia gama de capacidades de computación de alto rendimiento, incluyendo manipulación de datos en paralelo, reducciones numéricas y gestión de memoria de dispositivo. Proporciona herramientas especializadas para transferir datos entre la memoria del sistema host y la memoria discreta del dispositivo para facilitar operaciones a gran escala como ordenamiento y búsqueda.
Provides parallel versions of C++ Standard Template Library (STL) algorithms optimized for device-side execution.
Thrust es una biblioteca de computación heterogénea y una biblioteca de plantillas de C++ que proporciona una colección de plantillas de alto nivel para ejecutar operaciones de datos en paralelo. Funciona como una biblioteca de algoritmos paralelos diseñada para trabajar en diferentes backends de hardware, incluyendo CPUs multinúcleo y hardware de GPU NVIDIA. El framework utiliza una implementación de solo cabeceras y una interfaz de políticas de programación genérica para abstraer las diferencias entre los modelos de memoria y ejecución de CPU y GPU. Emplea una abstracción de datos basada en iteradores para proporcionar una interfaz uniforme para acceder a elementos a través de la RAM del host y la VRAM del dispositivo. La biblioteca cubre capacidades de procesamiento paralelo, incluyendo la clasificación de datos en paralelo y el procesamiento de reducción agregada para calcular valores en grandes conjuntos de datos. Estas operaciones se gestionan a través de una biblioteca de programación paralela CUDA para computación de alto rendimiento en hardware GPU.
Provides a comprehensive collection of high-level parallel algorithms for data-parallel operations.
This project is a technical curriculum and set of educational resources focused on parallel programming, high-performance computing, and systems programming. It provides a structured course covering the implementation of parallel algorithms and multithreading techniques for processing large datasets. The project includes a systems programming guide for modern language features, a framework for lock-free concurrency patterns, and a manual for optimizing CPU and GPU performance through assembly analysis and cache management. The material covers hardware performance tuning, the implementation o
Implements fundamental data-parallel operations such as reductions, scans, and matrix multiplication.