13 dépôts
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 est un framework de calcul parallèle et un planificateur de tâches distribué conçu pour mettre à l'échelle les flux de travail de science des données Python, des machines uniques aux grands clusters. Il fonctionne comme un gestionnaire de ressources de cluster qui orchestre la logique computationnelle en représentant les tâches et leurs dépendances sous forme de graphes acycliques dirigés. Cette architecture permet au système d'automatiser la distribution des charges de travail sur le matériel disponible tout en gérant des exigences d'exécution complexes. Le projet se distingue par un moteur d'évaluation paresseuse qui diffère les opérations sur les données jusqu'à ce qu'elles soient explicitement demandées, permettant une optimisation globale du graphe et une allocation efficace des ressources. Il intègre le déversement de données conscient de la mémoire pour éviter les plantages du système lors du traitement de jeux de données dépassant la mémoire disponible, et il utilise la fusion de graphes de tâches pour combiner des séquences d'opérations en étapes d'exécution uniques, minimisant la surcharge de planification et la communication entre nœuds. La plateforme fournit une surface de capacités complète pour l'analyse de données à grande échelle, incluant le support pour l'apprentissage automatique distribué, l'intégration du calcul haute performance et le traitement de données parallèle. Elle offre des outils étendus pour la gestion du cycle de vie des clusters, le profilage des performances et la surveillance en temps réel de l'exécution des tâches. Les utilisateurs peuvent déployer ces environnements sur diverses infrastructures, incluant le matériel local, les fournisseurs cloud, les systèmes conteneurisés et les clusters de calcul haute performance.
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 est une bibliothèque d'algorithmes parallèles C++ qui fournit une suite d'interfaces inspirées de la bibliothèque standard pour une exécution sur du matériel multi-cœur et accélérateur. Elle sert de bibliothèque de données accélérée par CUDA et d'interface de programmation parallèle générique conçue pour permettre un traitement de données haute performance sur GPU et CPU. Le projet implémente une couche d'abstraction portable qui permet des flux de travail informatiques hétérogènes, permettant à la même logique d'algorithme de base de s'exécuter sur différents accélérateurs matériels. Ceci est réalisé grâce à une conception de politique de programmation générique et un modèle d'exécution agnostique du backend qui mappe les appels fonctionnels de haut niveau vers le matériel parallèle. La bibliothèque couvre un large éventail de capacités de calcul haute performance, y compris la manipulation de données parallèles, les réductions numériques et la gestion de la mémoire de périphérique. Elle fournit des outils spécialisés pour transférer des données entre la mémoire du système hôte et la mémoire du périphérique discret afin de faciliter les opérations à grande échelle comme le tri et la recherche.
Provides parallel versions of C++ Standard Template Library (STL) algorithms optimized for device-side execution.
Thrust est une bibliothèque de calcul hétérogène et une bibliothèque de modèles C++ qui fournit une collection de modèles de haut niveau pour exécuter des opérations de données parallèles. Elle fonctionne comme une bibliothèque d'algorithmes parallèles conçue pour fonctionner sur différents backends matériels, incluant les CPU multicœurs et le matériel GPU NVIDIA. Le framework utilise une implémentation header-only et une interface de politique de programmation générique pour abstraire les différences entre les modèles de mémoire et d'exécution CPU et GPU. Il emploie une abstraction de données basée sur les itérateurs pour fournir une interface uniforme d'accès aux éléments à travers la RAM hôte et la VRAM du périphérique. La bibliothèque couvre des capacités de traitement parallèle, incluant le tri de données parallèle et le traitement de réduction agrégée pour calculer des valeurs sur de grands jeux de données. Ces opérations sont gérées via une bibliothèque de programmation parallèle CUDA pour le calcul haute performance sur matériel 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.