15 dépôts
Systems that maintain file consistency across multiple devices without manual intervention.
Distinguishing note: Focuses on the synchronization domain, distinct from general file management.
Explore 15 awesome GitHub repositories matching devops & infrastructure · Distributed Synchronization. Refine with filters or upvote what's useful.
Spacedrive is a decentralized storage client that functions as a distributed file manager, aggregating local, cloud, and network storage into a single virtual filesystem. It operates on a local-first design, prioritizing offline availability by caching metadata and file chunks locally before synchronizing them across devices. By coordinating data access without relying on a central server, it enables users to maintain a private and secure storage network across their own hardware and cloud accounts. The platform distinguishes itself through a virtual storage layer that maps disparate physical
Keeps files consistent across multiple devices and storage locations by automatically syncing changes in the background.
Beads is a versioned, dependency-aware graph database designed for distributed issue tracking and project management. It functions as an agentic workflow orchestrator, providing a structured environment where tasks, dependencies, and project metadata are linked through relational hierarchies. By maintaining a persistent, version-controlled record of project state, the system enables teams to manage complex work items across multiple repositories and environments. The platform distinguishes itself through its deep integration with automated coding agents, acting as a Model Context Protocol ser
Maintains a consistent, versioned record of project tasks and dependencies across distributed environments.
git-bug is a distributed bug tracker and local-first issue manager that stores bug reports and comments as versioned objects directly within a Git repository. It integrates project management by coupling issue history with source code, using Git as the transport layer to synchronize task data across multiple local clones. The system enables distributed bug tracking without relying on a central server or external hosting provider. It utilizes a local indexing cache to provide near-instant searching and filtering of issue metadata without network latency. The project further supports synchroni
Synchronizes issue tracker state across different machines using Git push and pull as the transport mechanism.
Asio is a C++ library for performing network and low-level I/O operations using a consistent asynchronous model that avoids blocking program execution. It provides a portable, cross-platform interface for network socket communication across different operating systems, and manages multiple asynchronous operations without requiring explicit thread management or locking. The library implements a proactor-based asynchronous model where operations post completion handlers to a queue for later execution, and wraps operating system I/O multiplexing mechanisms like epoll, kqueue, IOCP, and select in
Implements a proactor-based completion model where operations post handlers to a queue for later execution.
Concurrent Ruby is a comprehensive concurrency toolkit for the Ruby language that provides thread-safe data structures, synchronization primitives, and asynchronous execution patterns. It implements core concurrency abstractions including an actor model framework where isolated actors communicate through asynchronous message passing, a future and promise system for composing non-blocking operations, and thread pool executors that manage reusable worker threads for concurrent task execution. The library distinguishes itself through a broad set of coordination mechanisms that go beyond basic th
Implements a thread barrier that synchronizes a group of threads at a common point before proceeding.
Ce projet fournit une boîte à outils complète pour WebGPU, servant de wrapper d'API graphique, de framework de compute shaders, de gestionnaire de ressources et de chaîne d'outils pour shaders. Il permet l'accélération GPU dans le navigateur en déchargeant les tâches gourmandes en mémoire et le traitement des données du CPU vers le GPU. Le framework gère le cycle de vie complet des opérations GPU, de la demande d'adaptateurs matériels physiques et l'initialisation des périphériques logiques à la configuration des pipelines de rendu et de calcul programmables. Il prend spécifiquement en charge la coordination des groupes de travail parallèles et les opérations collectives de sous-groupes pour les calculs à usage général. Le système couvre une large surface de capacités, incluant la gestion des ressources GPU pour les buffers et textures, les workflows de développement de shaders avec des points d'entrée personnalisés, et l'optimisation des performances via l'enregistrement de buffers de commandes. Il inclut également des outils d'observabilité pour les requêtes de performance matérielle, l'isolation des erreurs et le filtrage de diagnostic.
Ensures data consistency across concurrent invocations using memory barriers and async completion signals.
TileLang is a Python-embedded domain-specific language compiler that JIT-compiles and autotunes GPU kernels. It uses a tile-based DSL, automatic software pipelining, and parallel autotuning to generate optimized GPU kernels at runtime. It supports tensor core operations with Pythonic syntax, automatic memory management, and thread mapping. The compiler searches over tile sizes, thread counts, and scheduling policies, compiling and benchmarking candidates in parallel to find the fastest kernel. It also caches compiled binaries and tuning results to disk for reuse across sessions. TileLang inc
Allocates synchronization barriers for coordinating thread arrivals in GPU kernels.
Dramatiq is a distributed task queue and workload manager used to offload function execution to background workers. It functions as an asynchronous task orchestrator that enables the distribution of computational tasks across a cluster using a pluggable transport layer supporting RabbitMQ and Redis. The framework provides specialized tools for complex task orchestration, including the ability to link background jobs into sequences, pipelines, and barriers. It further manages distributed concurrency through the use of shared mutexes, rate limiters, and exponential backoff retries to prevent re
Coordinates multiple remote workers by blocking execution until a specific number of tasks reach a checkpoint.
NCCL est une bibliothèque de communication haute performance et un framework de calcul GPU distribué conçu pour exécuter des échanges de données collectifs et point à point sur plusieurs GPU dans des systèmes à un ou plusieurs nœuds. Il sert de couche de transport GPU RDMA et d'orchestrateur de mémoire, facilitant la synchronisation à large bande passante des données et des gradients de modèle pour l'entraînement et l'inférence GPU distribués. La bibliothèque se distingue par sa capacité à exécuter des primitives de communication directement depuis les noyaux (kernels) GPU, supprimant le CPU hôte du chemin critique. Elle utilise une sélection de chemin consciente de la topologie pour optimiser le mouvement des données et emploie un transport réseau basé sur RDMA, incluant InfiniBand et NVLink, pour permettre un accès mémoire zéro-copie entre les appareils sur différents nœuds physiques. Le projet couvre un large éventail de modèles de communication collective, notamment les réductions, les diffusions (broadcasts), les rassemblements (gathers) et les échanges tous-à-tous, ainsi que l'accès mémoire distant point à point. Il fournit une gestion complète des communicateurs pour initialiser, partitionner et redimensionner les groupes GPU, ainsi qu'une gestion spécialisée de la mémoire pour enregistrer les tampons (buffers) et coordonner la mémoire partagée des appareils. Le système inclut une suite d'outils de surveillance et d'observabilité pour le suivi de la santé, la journalisation diagnostique et la surveillance des événements en temps réel, ainsi que des interfaces d'intégration pour les frameworks de machine learning, les graphes CUDA, MPI et Python.
Executes network barriers across a group of peers to ensure all participating threads reach a common point.
Ignite est un framework d'entraînement de haut niveau pour les réseaux de neurones PyTorch, servant de moteur d'entraînement et de gestionnaire de cycle de vie pour le deep learning. Il fournit un système structuré pour organiser et automatiser les boucles d'entraînement et d'évaluation, gérer les itérateurs de données et déclencher des gestionnaires d'événements à des étapes spécifiques du processus d'entraînement du modèle. Le projet se distingue par une suite complète d'outils pour l'entraînement distribué et l'évaluation de modèles. Il inclut des utilitaires pour synchroniser les gradients et coordonner la communication collective entre plusieurs GPU ou nœuds, ainsi qu'une suite d'évaluation pour calculer des métriques de performance et effectuer une validation croisée k-fold. Ses capacités plus larges couvrent l'automatisation du workflow d'entraînement, incluant la planification du taux d'apprentissage, l'arrêt précoce (early stopping) et l'optimisation des hyperparamètres. Le framework fournit également des outils d'observabilité pour le suivi des expériences, le profilage du temps d'exécution et l'entraînement en précision mixte pour optimiser l'utilisation de la mémoire. Des mécanismes de persistance d'état sont inclus pour gérer les checkpoints des modèles et restaurer les sessions d'entraînement. Des environnements conteneurisés sont disponibles pour simplifier le déploiement et la configuration de l'environnement.
Provides coordination mechanisms that block process execution until all distributed nodes reach a common synchronization point.
SSH.NET is a .NET library that implements the SSH-2 protocol for encrypted remote connections and secure file transfers. It provides a complete SSH-2 protocol stack implementation with a channel multiplexing engine that manages multiple concurrent channels over a single connection, supporting simultaneous shell sessions, remote command execution, SFTP transfers, and port forwarding tunnels. The library includes a pluggable authentication pipeline supporting password, public key, certificate, keyboard-interactive, and multi-factor authentication combinations. The library distinguishes itself t
Encapsulates async operation results in base classes for consistent completion handling across all remote operations.
Ce projet est un wrapper graphique multiplateforme et une couche de traduction qui implémente les spécifications OpenGL ES et EGL. Il fonctionne comme un pont d'API graphique, mappant les appels OpenGL ES et le contenu WebGL vers des API matérielles spécifiques à la plateforme telles que Vulkan et Metal pour assurer un rendu cohérent sur différents systèmes d'exploitation. Le système dispose d'un service de traduction de shaders qui valide le code du langage d'ombrage et le transpile vers plusieurs langages cibles, notamment HLSL, SPIR-V et Metal SL. Il emploie une architecture de backend enfichable pour sélectionner l'API de rendu matériel appropriée lors de l'initialisation et peut remplacer les identifiants matériels du GPU pour maintenir la compatibilité des applications. La surface de capacités inclut l'abstraction de l'API GPU et le mappage des extensions graphiques, ainsi que la traduction des appels de calcul OpenCL en instructions spécifiques au matériel. Pour la gestion des ressources, le projet implémente la gestion des tampons de commande Vulkan et la synchronisation de l'accès aux ressources à l'aide de barrières de lecture et d'écriture. L'observabilité est assurée par la capture de traces d'appels API, l'émission de marqueurs de débogage GPU et une journalisation système détaillée pour les appels de l'API Vulkan.
Issues read and write barriers for images and buffers to prevent data races between GPU operations.
Ce projet est un framework complet pour le développement d'applications iOS, centré sur la construction d'applications mobiles qui présentent des composants d'interface utilisateur personnalisés, une gestion de tâches asynchrone et une persistance de données locale. Il sert de base de connaissances technique pour l'ingénierie logicielle, fournissant des outils pour organiser et publier des analyses architecturales et des notes au format Markdown. Le framework se distingue par une couche de stockage robuste basée sur des documents qui utilise des enregistrements au format BSON pour effectuer des opérations CRUD au sein d'un magasin de documents NoSQL. Il fournit des capacités d'intégration système étendues, incluant une communication spécialisée par extension d'application, le passage de messages entre bacs à sable et la présentation native de feuilles de partage, permettant une interaction transparente entre l'application hôte et les services au niveau du système. Le projet couvre une large surface de capacités, incluant une gestion avancée de la concurrence avec synchronisation thread-safe, le déchargement du rendu UI en arrière-plan pour maintenir la réactivité et une prise en charge complète de l'internationalisation. Il inclut également des utilitaires axés sur les développeurs pour la génération de types statiques, le mapping automatique de ressources et la construction de prototypes interactifs, aux côtés d'outils spécialisés pour la surveillance de balises géographiques et la génération de graphiques adaptatifs.
Implements reader-writer locks using dispatch barriers to allow multiple simultaneous reads while ensuring exclusive access for writes.
cppcoro is a C++ coroutine library and concurrency toolkit providing primitives for asynchronous tasks, lazy generators, and non-blocking execution. It functions as an asynchronous I/O framework for managing network sockets and file operations through an event loop. The library features a work-stealing thread pool for distributing tasks across multiple cores and a set of async generators for producing lazy sequences of values both synchronously and asynchronously. It includes a concurrency toolkit with async mutexes, latches, and shared tasks to coordinate multi-threaded execution. Its capab
Implements asynchronous latches that suspend operations until a counter reaches zero.
AsyncEx is a .NET asynchronous synchronization library providing a collection of primitives to coordinate tasks and manage execution flow. It implements mechanisms for asynchronous resource locking, event signaling, and concurrency control to ensure correct execution order in environments supporting async/await. The library includes an asynchronous lock implementation to protect shared resources without blocking threads, an async semaphore controller to limit simultaneous operations, and an event signaling system to manage the startup and shutdown of asynchronous workflows. The toolkit cover
Coordinates the order and timing of multiple async operations using completion signals.