13 repository-uri
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 este un framework de calcul paralel și un scheduler de sarcini distribuit conceput pentru a scala fluxurile de lucru de știința datelor în Python de la mașini individuale la clustere mari. Acesta funcționează ca un manager de resurse de cluster care orchestrează logica computațională prin reprezentarea sarcinilor și a dependențelor acestora sub formă de grafuri aciclice direcționate. Această arhitectură permite sistemului să automatizeze distribuția sarcinilor de lucru pe hardware-ul disponibil, gestionând în același timp cerințe complexe de execuție. Proiectul se distinge printr-un motor de evaluare leneșă (lazy) care amână operațiunile pe date până când sunt solicitate explicit, permițând optimizarea globală a grafului și alocarea eficientă a resurselor. Acesta încorporează „spilling” de date conștient de memorie pentru a preveni blocarea sistemului la procesarea seturilor de date care depășesc memoria disponibilă și utilizează fuziunea grafului de sarcini pentru a combina secvențe de operațiuni în pași de execuție unici, minimizând overhead-ul de programare și comunicarea între noduri. Platforma oferă o suprafață cuprinzătoare de capabilități pentru analiza datelor la scară largă, inclusiv suport pentru învățare automată distribuită, integrare cu calcul de înaltă performanță și procesare paralelă a datelor. Oferă instrumente extinse pentru gestionarea ciclului de viață al clusterului, profilarea performanței și monitorizarea în timp real a execuției sarcinilor. Utilizatorii pot implementa aceste medii pe diverse infrastructuri, inclusiv hardware local, furnizori de cloud, sisteme containerizate și clustere de calcul de înaltă performanță.
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 este o bibliotecă de algoritmi paraleli C++ care oferă o suită de interfețe inspirate din biblioteca standard pentru execuție pe hardware multi-core și acceleratoare. Servește drept bibliotecă de date accelerată prin CUDA și o interfață generică de programare paralelă concepută pentru a permite procesarea datelor de înaltă performanță pe GPU-uri și CPU-uri. Proiectul implementează un strat de abstractizare portabil care permite fluxuri de lucru de calcul eterogen, permițând aceleiași logici de algoritm de bază să ruleze pe diferite acceleratoare hardware. Acest lucru este realizat printr-un design de politică de programare generică și un model de execuție agnostic față de backend care mapează apelurile funcționale de nivel înalt către hardware-ul paralel. Biblioteca acoperă o gamă largă de capabilități de calcul de înaltă performanță, inclusiv manipularea paralelă a datelor, reducerile numerice și gestionarea memoriei dispozitivului. Oferă instrumente specializate pentru transferul datelor între memoria sistemului gazdă și memoria discretă a dispozitivului pentru a facilita operațiuni la scară largă, cum ar fi sortarea și căutarea.
Provides parallel versions of C++ Standard Template Library (STL) algorithms optimized for device-side execution.
Thrust este o bibliotecă de calcul eterogen și o bibliotecă de șabloane C++ care oferă o colecție de șabloane de nivel înalt pentru executarea operațiunilor de date paralele. Acesta funcționează ca o bibliotecă de algoritmi paraleli concepută pentru a lucra pe diferite backend-uri hardware, inclusiv CPU-uri multicore și hardware GPU NVIDIA. Framework-ul utilizează o implementare header-only și o interfață de politică de programare generică pentru a abstractiza diferențele dintre modelele de memorie și execuție CPU și GPU. Acesta folosește o abstractizare a datelor bazată pe iteratori pentru a oferi o interfață uniformă pentru accesarea elementelor din RAM-ul gazdă și VRAM-ul dispozitivului. Biblioteca acoperă capabilități de procesare paralelă, inclusiv sortarea paralelă a datelor și procesarea de reducere agregată pentru calcularea valorilor pe seturi mari de date. Aceste operațiuni sunt gestionate printr-o bibliotecă de programare paralelă CUDA pentru calcul de înaltă performanță pe 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.