🦀 Rust — Notes d’apprentissage
Rust comme langage complémentaire à Python pour le calcul distribué performant : GAR optimisées, buffers zero-copy, intégration PyO3, et bindings CUDA via cudarc.
Cours
| # | Note | Sujet |
|---|---|---|
| 1 | 1-Ownership et Bases | Ownership, borrowing, lifetimes |
| 2 | 2-Types Structs Enums | Types, structs, enums, pattern matching |
| 3 | 3-Error Handling | Option, Result, ? |
| 4 | 4-Iterateurs et Closures | Itérateurs, closures, programmation fonctionnelle |
| 5 | 5-Traits et Generics | Traits, generics, polymorphisme |
| 6 | 6-Smart Pointers et Concurrence | Box, Rc, Arc, RefCell, Mutex, Send, Sync, threads |
| 7 | 7-Modules et Organisation | Modules, Cargo, workspace, visibilité |
| 8 | 8-Tests et Documentation | Tests unitaires, intégration, doc-tests, benchmarks |
| 9 | 9-String et Collections | String, Vec avancé, HashMap, HashSet |
| 10 | 10-IO et Serde | Fichiers, sérialisation JSON/binaire, Serde |
| 11 | 11-Async et Tokio | async/await, Tokio, canaux, TCP |
| 12 | 12-Unsafe et FFI | Unsafe, FFI C, cudarc, PyO3 |
| 13 | 13-Macros | macro_rules!, macros procédurales |
| 14 | 14-Projet GAR Rust | Projet : Implémentation GAR en Rust |
Objectifs
- Ownership, borrowing, lifetimes
- Structs, enums, pattern matching
- Gestion d’erreurs (
Result,Option,?) - Itérateurs et closures
- Concurrence (
Send,Sync,Arc,Mutex) - Modules, organisation workspace
- Tests, documentation, benchmarks
- Collections, String, HashMap
- Serde, sérialisation
- Async/Tokio
- Unsafe, FFI
- Macros
- Projet GAR — implémenter Médiane, Krum, Bulyan en Rust
- PyO3 / maturin — extension Python de la librairie GAR
- Benchmarks Rust vs Python (PyTorch)
- cudarc — acceleration GPU des GAR
Ressources
🔗 Voir aussi
- Gradients — flatten, zero-copy, buffers
- Compression Distribuée
- PyTorch
- Concepts avancés
- Library — specs de la librairie MLOSS
- Définitions — glossaire byzantin (GAR, point de rupture)
- 14-Projet GAR Rust — projet de mise en pratique