Не требуется оформлять презентацию. Достаточно хорошо отформатированного для отображения на проекторе Word (6 кегль шрифт, 1 интервал, 1 интервал между абзацами, шрифт Tahoma) или Pdf документа.
Обязательно помимо раскрытия темы привести ниже или в тексте скрины страниц из источников (учебников с обязательным приложенным скрином обложки и выходных данных) и документцаии производителя.
Если требуется перевод (можно пользоваться яндекс переводчиком документов pdf), то привести скрины и на языке оригинала и переведенного рядом, чтобы можно было сопоставить. Для интернет источников необходимы ссылки (это касается документации производителя) на страницы.
Если для источников допустимо распространение, то приложить и сами источники, чтобы можно было их полистать во время доклада.
В тексте доклада должны присутствовать скрины листингов программ из источников.
Для частей доклада в соотвествии с приказом ...777.... необходимо указать в соответствующих частях какие ИИ использовались при подготовке этой части текста и какие конкретно использовались промпты.
Сами страницы общения с ИИ с ответами желательно (но необязательно) тоже приложить в формате mhtml
Ссылки указываются в неотформатированном виде (ссылка из адресной строки браузера как есть) или данные источника с второй страницы книги.
Доклады распределяются (по желанию, кто первый взял тему, тот ее и докладывает) см exel и там же синхронизироваться
Доклады демонстрируются всей группе на экране с проектором и освещаются выступающим.
Доклад сделан не только для того, чтобы сдать его и получить зачет, а прежде всего для того, чтобы друг друга научить - поэтому доклады необходимо готовить вовремя по 1 каждую неделю, а также доклады необходимо внимательно слушать, задавать вопросы. А студенты отсутствующие на соотвествующих семинарских занятиях рискуют получить дополнительные вопросы по всем пропущенным докладам.
1) Java / JVM — 13 тем
JVM-блок получил много тем, потому что здесь одновременно есть зрелый java.util.concurrent, современные virtual threads, развивающаяся structured concurrency и сильная Kotlin-надстройка поверх JVM.
-
Java: ExecutorService и ThreadPoolExecutor — доклад о том, как строить управляемое выполнение задач; раскрыть submit, invokeAll, fixed/cached/work-stealing pool, очереди задач, saturation и RejectedExecutionHandler.
-
Java: Future vs CompletableFuture — показать переход от блокирующего ожидания к композиции async-цепочек; раскрыть thenApply, thenCompose, allOf, обработку исключений и orchestration.
-
Java: ForkJoinPool, RecursiveTask, RecursiveAction — разобрать work-stealing и fork-join-подход; раскрыть granularity, recursive decomposition и типичные ошибки с мелкими задачами.
-
Java: synchronized, wait, notify, notifyAll — доклад именно про встроенные мониторы JVM; раскрыть monitor pattern, guarded blocks, lost wakeups и спуровые пробуждения.
-
Java: ReentrantLock, ReadWriteLock, StampedLock — сравнить явные lock-API; раскрыть fairness, read-mostly сценарии, optimistic read и lock upgrading pitfalls.
-
Java: AtomicInteger, AtomicReference, LongAdder, VarHandle — доклад о low-level атомарности; раскрыть CAS, contention, когда LongAdder выгоднее счётчика на AtomicLong.
-
Java: CountDownLatch, CyclicBarrier, Phaser — рассмотреть барьерные примитивы; раскрыть one-shot vs reusable coordination и фазовое управление параллельным алгоритмом.
-
Java: BlockingQueue, SynchronousQueue, producer-consumer — конкретный доклад про очереди; раскрыть bounded/unbounded design, backpressure и handoff-сценарии.
-
Java: ConcurrentHashMap, CopyOnWriteArrayList, concurrent collections — разобрать потокобезопасные коллекции; раскрыть тонкую гранулярность блокировок, snapshot-style коллекции и trade-offs по памяти.
-
Java 21+: Virtual Threads — доклад о том, когда заменять platform threads на virtual threads; раскрыть blocking style, throughput, pinning и ограничения при legacy synchronization.
-
Java: Structured Concurrency — показать модель “дерева задач”; раскрыть scoped life-cycle, cancellation, error propagation и отличие от вручную собранных Future.
-
Java: Flow / SubmissionPublisher — разобрать стандартный reactive-streams API JDK; раскрыть publisher-subscriber, demand, backpressure и межкомпонентные pipeline.
-
Kotlin на JVM: CoroutineScope, Dispatcher, Job, SupervisorJob — отдельный доклад по Kotlin concurrency; раскрыть structured concurrency, cooperative cancellation и отличие coroutine от thread.
2) C / C++ / OpenMP / oneTBB — 18 тем Здесь больше всего конкретики по примитивам и HPC: стандартная concurrency-библиотека C++, C11 threads/atomics, oneTBB как task-based слой и OpenMP 6.0 как один из главных стандартов директивного параллелизму
-
C++: std::thread, std::jthread, stop_token — доклад о жизненном цикле потока; раскрыть join/detach, cooperative cancellation и почему jthread безопаснее в современном коде.
-
C++: mutex, shared_mutex, lock_guard, unique_lock, scoped_lock — разобрать синхронизацию разделяемого состояния; раскрыть RAII, lock ordering и deadlock avoidance.
-
C++: condition_variable и протоколы ожидания — показать правильный шаблон wait(predicate); раскрыть producer-consumer, spurious wakeups и lost notifications.
-
C++: future, promise, packaged_task, std::async — доклад о task/future-модели стандартной библиотеки; раскрыть ownership результата, launch policy и composition limits.
-
C++: std::atomic, memory_order, atomic_ref, atomic_wait/notify — low-level тема про memory model; раскрыть acquire/release, seq_cst, relaxed и где ошибки становятся неуловимыми.
-
C++20: counting_semaphore, binary_semaphore, latch, barrier — разобрать новые координационные примитивы; раскрыть phase synchronization и bounded access.
-
C++20/23: coroutines (co_await, co_return, generators) — доклад про stackless coroutines; раскрыть promise type, suspend points и как coroutine связывается с async I/O.
-
C11: thrd_t, thrd_create, mtx_t, cnd_t — отдельный доклад по стандартным потокам C; раскрыть базовую модель без POSIX-специфики.
-
C11: _Atomic, atomic_fetch_*, fences — разобрать атомарность в C; раскрыть lock-free counters, memory fences и опасность ложной уверенности в “простых” атомиках.
-
oneTBB: parallel_for, parallel_reduce, blocked_range — доклад о data-parallel C++; раскрыть partitioning, grain size и когда TBB лучше ручных thread pool.
-
oneTBB: Flow Graph (function_node, continue_node, limiter_node) — построение DAG-пайплайнов; раскрыть message-passing, bounded parallelism и backpressure.
-
oneTBB: concurrent containers и task_arena — разобрать concurrent_hash_map, очереди и контроль арен/изолированных пулов; раскрыть nested parallelism.
-
OpenMP: parallel, for, loop, simd — доклад именно по базовым директивам; раскрыть canonical loops, vectorization hints и совместимость thread-level + SIMD.
-
OpenMP: schedule(static|dynamic|guided), collapse, ordered — тема про распределение итераций; раскрыть load balancing и когда collapse реально ускоряет вложенные циклы.
-
OpenMP: reduction, task_reduction, in_reduction, declare reduction — разобрать редукции; раскрыть пользовательские редукции и различие loop/task reductions.
-
OpenMP: critical, atomic, flush, single, sections, masked, nowait — доклад про синхронизацию и sequencing в OpenMP; раскрыть цену каждого примитива.
-
OpenMP: task, taskloop, taskgroup, depend — тема по task-based OpenMP; раскрыть task granularity, dependency graph и nested tasking.
-
OpenMP: target, teams, distribute, map, metadirective, declare variant, OMPT — продвинутый доклад про offload и адаптацию под архитектуру; раскрыть host/device mapping и инструменты анализа.
3) Go — 10 тем
В Go concurrency встроена в сам язык и стандартную библиотеку: goroutines, channels, select, context, memory model, race detector и доп. примитивы x/sync. Это делает Go одной из самых “учебно-практичных” экосистем для конкретных доклада
-
Go: жизненный цикл goroutine и планировщик — раскрыть M:N scheduling, GOMAXPROCS, blocking vs runnable goroutines и cost model.
-
Go: channels — unbuffered vs buffered — доклад о базовой передаче данных; раскрыть ownership данных, handoff и очередность взаимодействия.
-
Go: select + timeout + cancellation patterns — разобрать multiplexing каналов; раскрыть non-blocking select, timeout case и graceful shutdown.
-
Go: sync.Mutex, RWMutex, Cond — тема про shared-state подход в Go; раскрыть когда “share memory by communicating” не хватает.
-
Go: WaitGroup, Once, Pool — доклад про координацию завершения, singleton-init и object reuse; раскрыть типовые misuse-ошибки.
-
Go: context.Context — показать propagation deadlines/cancellation; раскрыть request-scoped values, anti-pattern “кладём всё в context” и отмену дерева задач.
-
Go: sync/atomic и memory model — low-level доклад; раскрыть atomic load/store/CAS и границы применимости без mutex.
-
Go: race detector (go test -race) — отдельная практическая тема; раскрыть какие гонки он ловит, а какие нет, и как строить workload для воспроизведения.
-
Go: pipelines, fan-out/fan-in, cancellation — доклад по каноническим concurrency patterns; раскрыть закрытие каналов, draining и утечки goroutine.
-
Go: x/sync/errgroup, semaphore, singleflight — продвинутый блок; раскрыть bounded concurrency, deduplication одинаковых запросов и group-cancellation.
4) Python — 12 тем
Python остаётся массовым языком, а его официальный стек concurrent execution сейчас особенно интересен: threading, multiprocessing, asyncio, concurrent.futures, новые concurrent.interpreters и продолжающаяся линия free-threaded CPyt
-
Python: threading.Thread и шаблон worker threads — раскрыть lifecycle, daemon/non-daemon, join и где threading уместен для I/O-bound задач.
-
Python: Lock, RLock, Condition, Semaphore, Event, Barrier — конкретный доклад по sync-примитивам стандартной библиотеки.
-
Python: ThreadPoolExecutor — показать high-level API поверх потоков; раскрыть submit/map, starvation и типичные ошибки с блокирующими callback’ами.
-
Python: ProcessPoolExecutor — тема про настоящий CPU parallelism; раскрыть pickling, chunksize, запуск subprocess-пула и overhead сериализации.
-
Python: multiprocessing.Process, Pool, Queue, Pipe — доклад о process-based параллелизме; раскрыть локальную и удалённую конкуренцию, IPC и стартовые методы.
-
Python: shared state между процессами (Value, Array, Manager, shared memory`) — разобрать, когда делить память, а когда лучше message passing.
-
Python: asyncio — create_task, gather, as_completed, event loop — базовый доклад про async orchestration.
-
Python: TaskGroup, cancellation, timeout, shield — современный доклад про structured async; раскрыть каскадную отмену и безопасное завершение групп задач.
-
Python: asyncio.Queue, Lock, Semaphore, producer-consumer — тема про асинхронную координацию без потоков.
-
Python: debug и ловушки asyncio — раскрыть debug mode, forgotten awaits, blocking calls inside loop и run_in_executor.
-
Python 3.14: concurrent.interpreters и subinterpreters — отдельный доклад про новую стандартную возможность; раскрыть isolation, отдельные GIL на интерпретатор и модель обмена данными.
-
Python: GIL, multiprocessing, subinterpreters и free-threaded CPython — сравнительный доклад без воды; раскрыть, какой путь выбирать для CPU-bound, I/O-bound и смешанных нагрузок.
5) JavaScript / TypeScript (browser + Node.js) — 10 тем
Для JS/TS важно не путать модели: в браузере — Web Workers, SharedArrayBuffer, Atomics и Web Locks; в Node — event loop, worker pool, worker_threads, streams/backpressure и async context propagation. TypeScript здесь наследует те же runtime-мод
-
Browser JS: Worker, Dedicated Workers, Shared Workers — доклад о фоновых потоках в браузере; раскрыть жизненный цикл, ограничения DOM и сценарии CPU-offload.
-
Browser JS: postMessage, structured clone, transferables — отдельная тема по обмену данными; раскрыть copy vs transfer и стоимость сериализации.
-
Browser JS: SharedArrayBuffer + TypedArray — доклад о разделяемой памяти; раскрыть layout shared buffers и правила доступа.
-
Browser JS: Atomics — разобрать load/store/add/sub/compareExchange, wait/notify и паттерны на shared memory.
-
Browser JS: Web Locks API (navigator.locks) — тема про координацию между вкладками/воркерами; раскрыть leader election, lock scopes и fair usage.
-
Node.js: event loop, worker pool и правило “don’t block the event loop” — доклад о фундаменте Node concurrency; раскрыть CPU-bound vs I/O-bound код.
-
Node.js: worker_threads — показать, когда брать worker threads вместо обычного async I/O; раскрыть создание worker, parentPort, workerData.
-
Node.js: shared memory в worker_threads — раскрыть SharedArrayBuffer, transfer list, MessageChannel и разницу между копированием и разделением.
-
Node.js: Streams и backpressure — конкретный доклад про конкурентную обработку потоков данных; раскрыть Readable/Writable/Transform, pressure propagation и throughput.
-
JS/TS: AbortController/AbortSignal и AsyncLocalStorage — тема про управление отменой и контекстом в асинхронных системах; раскрыть cancellation contract и traceable request context.
6) .NET / C# — 10 тем
В .NET concurrency очень широкая и прикладная: TPL, Parallel loops, Parallel.ForEachAsync, PLINQ, concurrent collections, Interlocked, SemaphoreSlim, CancellationToken, Channel<T> и TPL Dataf
-
C#: Task vs Thread vs ThreadPool — доклад о базовых единицах выполнения; раскрыть cost model и почему большинство современного кода строится через Task.
-
C#: Parallel.For / Parallel.ForEach / Partitioner — конкретная тема по data parallelism; раскрыть thread-local state, early break и partitioning strategies.
-
C#: Parallel.ForEachAsync — отдельный современный доклад; раскрыть параллельную обработку IEnumerable/IAsyncEnumerable и контроль конкуренции.
-
C#: async/await, Task.WhenAll, Task.WhenAny — тема про orchestration async-операций; раскрыть composition, aggregation exceptions и fan-out запросов.
-
C#: PLINQ (AsParallel, AsOrdered, ForAll) — доклад о параллельных запросах; раскрыть cost model, ordering и почему PLINQ не ускоряет всё подряд.
-
C#: producer-consumer в .NET — ConcurrentDictionary, ConcurrentQueue, BlockingCollection vs Channel<T> — сравнить коллекции и каналы для разных сценариев.
-
C#: Interlocked — low-level доклад о атомарных счётчиках и CAS-операциях; раскрыть, где Interlocked заменяет lock, а где нет.
-
C#: SemaphoreSlim — тема про bounded concurrency и ограничение параллелизма; раскрыть rate limiting, async waits и локальный semaphore semantics.
-
C#: CancellationToken / CancellationTokenSource — доклад о cooperative cancellation; раскрыть propagation, linked tokens и корректную отмену длинных операций.
-
C#: Channel<T> и TPL Dataflow — доклад про современные pipeline-модели; раскрыть bounded/unbounded channels, block linking, backpressure и coarse-grained actor/dataflow style.
7) Rust — 8 тем
Rust даёт одновременно безопасные native threads, сильный std::sync, async/await через runtime, data-parallelism через Rayon и богатую экосистему вроде Crossbeam и Loom для тестирования конкурентного к
-
Rust: std::thread::spawn, Builder, JoinHandle — доклад про native OS threads; раскрыть 'static и Send-ограничения, именование и stack size.
-
Rust: Arc, Mutex, RwLock, Condvar, Once — тема про shared-state synchronization; раскрыть ownership, interior mutability и poison semantics.
-
Rust: каналы (std::sync message passing) — доклад про message-passing стиль; раскрыть producer-consumer, closing semantics и связь с ownership.
-
Rust: std::sync::atomic — low-level доклад; раскрыть атомики в паре с Arc, memory ordering и где Rust всё равно не спасёт от логической гонки.
-
Rust: async/await, Future, Poll, Waker — концептуальный, но не водяной доклад именно по runtime-механике async Rust.
-
Tokio: runtime, spawn, select!, каналы и cancellation — отдельный прикладной доклад по главному async runtime Rust.
-
Rayon: ParallelIterator, join, par_sort — доклад про data parallelism; раскрыть, как быстро распараллелить CPU-heavy код без ручных потоков.
-
Rust: Crossbeam + Loom — тема про очереди, work-stealing, epoch-based structures и systematic testing concurrent code.
8) MPI / CUDA / GPU — 7 тем
Для HPC и высокопроизводительных систем обязательны MPI 4.1 и CUDA 13.2: у MPI — обмен сообщениями, коллективы, топологии и новые partitioned communications; у CUDA — execution model, streams и современная GPU-оркестра
-
MPI: point-to-point (Send/Recv, nonblocking, persistent) — доклад о базовой и продвинутой передаче сообщений; раскрыть matching semantics, buffering и overlap computation/communication.
-
MPI: collective communication (Barrier, Bcast, Reduce, Allreduce, nonblocking/persistent collectives) — раскрыть, как строятся масштабируемые коллективные этапы.
-
MPI: communicators, groups, Cartesian topologies, neighborhood patterns — тема про структурирование процессов; раскрыть topology-aware decomposition и hardware mapping.
-
MPI 4.1: partitioned communication — современный доклад; раскрыть partial completion, MPI_PARRIVED, взаимодействие с threads/tasks/OpenMP.
-
CUDA: execution model (grid, block, warp, memory hierarchy) — фундаментальный доклад; раскрыть global/shared/local memory и SIMT execution.
-
CUDA: streams, events, async memcpy — тема про overlap и pipeline на GPU; раскрыть stream concurrency и скрытие latency.
-
CUDA: cooperative groups, graphs, dynamic parallelism и performance tuning — продвинутый доклад; раскрыть launch overhead, occupancy, shared memory tuning и kernel orchestration.
10 дополнительных тем
Это уже менее массовые, но вполне актуальные экосистемы и модели конкурентного программирования. Они хорошо подходят как резерв, если нужен более широкий охват
-
Kotlin: Channel и Flow — раскрыть pipeline, backpressure и cold/hot stream semantics в coroutine-модели.
-
Swift Concurrency: async/await, Task, TaskGroup — доклад о современной concurrency-модели Swift; раскрыть child tasks и structured concurrency.
-
Swift: actor, Sendable, strict concurrency — тема про защиту состояния на уровне языка; раскрыть actor isolation и migration к строгой модели Swift 6.
-
Erlang: spawn, mailboxes, receive, links, monitors — доклад про классическую actor/process-модель и fault-tolerant concurrency.
-
Elixir: GenServer, Task, Supervisor — разобрать server-process abstraction, supervision tree и stateful process design.
-
Akka Typed: actors, supervision, mailbox discipline — конкретный доклад по typed actor model на JVM.
-
Akka Streams: backpressure, graphs, async boundaries — тема про non-blocking stream processing и composition graph’ов.
-
Julia: Threads.@threads, @spawn, Task, Channel, distributed — доклад про современный scientific concurrency stack Julia.
-
Clojure: core.async и core.async.flow — раскрыть go-blocks, каналы, flow topology и observability.
-
Scala: Future, Promise, ExecutionContext — доклад про неблокирующую композицию вычислений и управление thread pools.
Автор: к.п.н., Румянцев Сергей Александрович, доцент Финансового университета при Правительстве РФ; доцент ОЧУВО Международного инновационного университета; Консалтинг, управление разработкой ПО; системный и бизнес анализ; менеджмент; аналитиз данных; управление ИТ. Телефон для связи +79269444818 (мессенджеры)

Короткая ссылка:
Не требуется оформлять презентацию. Достаточно хорошо отформатированного для отображения на проекторе Word (6 кегль шрифт, 1 интервал, 1 интервал между абзацами, шрифт Tahoma) или Pdf документа.
Обязательно помимо раскрытия темы привести ниже или в тексте скрины страниц из источников (учебников с обязательным приложенным скрином обложки и выходных данных) и документцаии производителя.
Если требуется перевод (можно пользоваться яндекс переводчиком документов pdf), то привести скрины и на языке оригинала и переведенного рядом, чтобы можно было сопоставить. Для интернет источников необходимы ссылки (это касается документации производителя) на страницы.
Если для источников допустимо распространение, то приложить и сами источники, чтобы можно было их полистать во время доклада.
В тексте доклада должны присутствовать скрины листингов программ из источников.
Для частей доклада в соотвествии с приказом ...777.... необходимо указать в соответствующих частях какие ИИ использовались при подготовке этой части текста и какие конкретно использовались промпты.
Сами страницы общения с ИИ с ответами желательно (но необязательно) тоже приложить в формате mhtml
Ссылки указываются в неотформатированном виде (ссылка из адресной строки браузера как есть) или данные источника с второй страницы книги.
Доклады распределяются (по желанию, кто первый взял тему, тот ее и докладывает) см exel и там же синхронизироваться
Доклады демонстрируются всей группе на экране с проектором и освещаются выступающим.
Доклад сделан не только для того, чтобы сдать его и получить зачет, а прежде всего для того, чтобы друг друга научить - поэтому доклады необходимо готовить вовремя по 1 каждую неделю, а также доклады необходимо внимательно слушать, задавать вопросы. А студенты отсутствующие на соотвествующих семинарских занятиях рискуют получить дополнительные вопросы по всем пропущенным докладам.
1) Java / JVM — 13 тем
JVM-блок получил много тем, потому что здесь одновременно есть зрелый java.util.concurrent, современные virtual threads, развивающаяся structured concurrency и сильная Kotlin-надстройка поверх JVM.
-
Java: ExecutorService и ThreadPoolExecutor — доклад о том, как строить управляемое выполнение задач; раскрыть submit, invokeAll, fixed/cached/work-stealing pool, очереди задач, saturation и RejectedExecutionHandler.
-
Java: Future vs CompletableFuture — показать переход от блокирующего ожидания к композиции async-цепочек; раскрыть thenApply, thenCompose, allOf, обработку исключений и orchestration.
-
Java: ForkJoinPool, RecursiveTask, RecursiveAction — разобрать work-stealing и fork-join-подход; раскрыть granularity, recursive decomposition и типичные ошибки с мелкими задачами.
-
Java: synchronized, wait, notify, notifyAll — доклад именно про встроенные мониторы JVM; раскрыть monitor pattern, guarded blocks, lost wakeups и спуровые пробуждения.
-
Java: ReentrantLock, ReadWriteLock, StampedLock — сравнить явные lock-API; раскрыть fairness, read-mostly сценарии, optimistic read и lock upgrading pitfalls.
-
Java: AtomicInteger, AtomicReference, LongAdder, VarHandle — доклад о low-level атомарности; раскрыть CAS, contention, когда LongAdder выгоднее счётчика на AtomicLong.
-
Java: CountDownLatch, CyclicBarrier, Phaser — рассмотреть барьерные примитивы; раскрыть one-shot vs reusable coordination и фазовое управление параллельным алгоритмом.
-
Java: BlockingQueue, SynchronousQueue, producer-consumer — конкретный доклад про очереди; раскрыть bounded/unbounded design, backpressure и handoff-сценарии.
-
Java: ConcurrentHashMap, CopyOnWriteArrayList, concurrent collections — разобрать потокобезопасные коллекции; раскрыть тонкую гранулярность блокировок, snapshot-style коллекции и trade-offs по памяти.
-
Java 21+: Virtual Threads — доклад о том, когда заменять platform threads на virtual threads; раскрыть blocking style, throughput, pinning и ограничения при legacy synchronization.
-
Java: Structured Concurrency — показать модель “дерева задач”; раскрыть scoped life-cycle, cancellation, error propagation и отличие от вручную собранных Future.
-
Java: Flow / SubmissionPublisher — разобрать стандартный reactive-streams API JDK; раскрыть publisher-subscriber, demand, backpressure и межкомпонентные pipeline.
-
Kotlin на JVM: CoroutineScope, Dispatcher, Job, SupervisorJob — отдельный доклад по Kotlin concurrency; раскрыть structured concurrency, cooperative cancellation и отличие coroutine от thread.
2) C / C++ / OpenMP / oneTBB — 18 тем Здесь больше всего конкретики по примитивам и HPC: стандартная concurrency-библиотека C++, C11 threads/atomics, oneTBB как task-based слой и OpenMP 6.0 как один из главных стандартов директивного параллелизму
-
C++: std::thread, std::jthread, stop_token — доклад о жизненном цикле потока; раскрыть join/detach, cooperative cancellation и почему jthread безопаснее в современном коде.
-
C++: mutex, shared_mutex, lock_guard, unique_lock, scoped_lock — разобрать синхронизацию разделяемого состояния; раскрыть RAII, lock ordering и deadlock avoidance.
-
C++: condition_variable и протоколы ожидания — показать правильный шаблон wait(predicate); раскрыть producer-consumer, spurious wakeups и lost notifications.
-
C++: future, promise, packaged_task, std::async — доклад о task/future-модели стандартной библиотеки; раскрыть ownership результата, launch policy и composition limits.
-
C++: std::atomic, memory_order, atomic_ref, atomic_wait/notify — low-level тема про memory model; раскрыть acquire/release, seq_cst, relaxed и где ошибки становятся неуловимыми.
-
C++20: counting_semaphore, binary_semaphore, latch, barrier — разобрать новые координационные примитивы; раскрыть phase synchronization и bounded access.
-
C++20/23: coroutines (co_await, co_return, generators) — доклад про stackless coroutines; раскрыть promise type, suspend points и как coroutine связывается с async I/O.
-
C11: thrd_t, thrd_create, mtx_t, cnd_t — отдельный доклад по стандартным потокам C; раскрыть базовую модель без POSIX-специфики.
-
C11: _Atomic, atomic_fetch_*, fences — разобрать атомарность в C; раскрыть lock-free counters, memory fences и опасность ложной уверенности в “простых” атомиках.
-
oneTBB: parallel_for, parallel_reduce, blocked_range — доклад о data-parallel C++; раскрыть partitioning, grain size и когда TBB лучше ручных thread pool.
-
oneTBB: Flow Graph (function_node, continue_node, limiter_node) — построение DAG-пайплайнов; раскрыть message-passing, bounded parallelism и backpressure.
-
oneTBB: concurrent containers и task_arena — разобрать concurrent_hash_map, очереди и контроль арен/изолированных пулов; раскрыть nested parallelism.
-
OpenMP: parallel, for, loop, simd — доклад именно по базовым директивам; раскрыть canonical loops, vectorization hints и совместимость thread-level + SIMD.
-
OpenMP: schedule(static|dynamic|guided), collapse, ordered — тема про распределение итераций; раскрыть load balancing и когда collapse реально ускоряет вложенные циклы.
-
OpenMP: reduction, task_reduction, in_reduction, declare reduction — разобрать редукции; раскрыть пользовательские редукции и различие loop/task reductions.
-
OpenMP: critical, atomic, flush, single, sections, masked, nowait — доклад про синхронизацию и sequencing в OpenMP; раскрыть цену каждого примитива.
-
OpenMP: task, taskloop, taskgroup, depend — тема по task-based OpenMP; раскрыть task granularity, dependency graph и nested tasking.
-
OpenMP: target, teams, distribute, map, metadirective, declare variant, OMPT — продвинутый доклад про offload и адаптацию под архитектуру; раскрыть host/device mapping и инструменты анализа.
3) Go — 10 тем
В Go concurrency встроена в сам язык и стандартную библиотеку: goroutines, channels, select, context, memory model, race detector и доп. примитивы x/sync. Это делает Go одной из самых “учебно-практичных” экосистем для конкретных доклада
-
Go: жизненный цикл goroutine и планировщик — раскрыть M:N scheduling, GOMAXPROCS, blocking vs runnable goroutines и cost model.
-
Go: channels — unbuffered vs buffered — доклад о базовой передаче данных; раскрыть ownership данных, handoff и очередность взаимодействия.
-
Go: select + timeout + cancellation patterns — разобрать multiplexing каналов; раскрыть non-blocking select, timeout case и graceful shutdown.
-
Go: sync.Mutex, RWMutex, Cond — тема про shared-state подход в Go; раскрыть когда “share memory by communicating” не хватает.
-
Go: WaitGroup, Once, Pool — доклад про координацию завершения, singleton-init и object reuse; раскрыть типовые misuse-ошибки.
-
Go: context.Context — показать propagation deadlines/cancellation; раскрыть request-scoped values, anti-pattern “кладём всё в context” и отмену дерева задач.
-
Go: sync/atomic и memory model — low-level доклад; раскрыть atomic load/store/CAS и границы применимости без mutex.
-
Go: race detector (go test -race) — отдельная практическая тема; раскрыть какие гонки он ловит, а какие нет, и как строить workload для воспроизведения.
-
Go: pipelines, fan-out/fan-in, cancellation — доклад по каноническим concurrency patterns; раскрыть закрытие каналов, draining и утечки goroutine.
-
Go: x/sync/errgroup, semaphore, singleflight — продвинутый блок; раскрыть bounded concurrency, deduplication одинаковых запросов и group-cancellation.
4) Python — 12 тем
Python остаётся массовым языком, а его официальный стек concurrent execution сейчас особенно интересен: threading, multiprocessing, asyncio, concurrent.futures, новые concurrent.interpreters и продолжающаяся линия free-threaded CPyt
-
Python: threading.Thread и шаблон worker threads — раскрыть lifecycle, daemon/non-daemon, join и где threading уместен для I/O-bound задач.
-
Python: Lock, RLock, Condition, Semaphore, Event, Barrier — конкретный доклад по sync-примитивам стандартной библиотеки.
-
Python: ThreadPoolExecutor — показать high-level API поверх потоков; раскрыть submit/map, starvation и типичные ошибки с блокирующими callback’ами.
-
Python: ProcessPoolExecutor — тема про настоящий CPU parallelism; раскрыть pickling, chunksize, запуск subprocess-пула и overhead сериализации.
-
Python: multiprocessing.Process, Pool, Queue, Pipe — доклад о process-based параллелизме; раскрыть локальную и удалённую конкуренцию, IPC и стартовые методы.
-
Python: shared state между процессами (Value, Array, Manager, shared memory`) — разобрать, когда делить память, а когда лучше message passing.
-
Python: asyncio — create_task, gather, as_completed, event loop — базовый доклад про async orchestration.
-
Python: TaskGroup, cancellation, timeout, shield — современный доклад про structured async; раскрыть каскадную отмену и безопасное завершение групп задач.
-
Python: asyncio.Queue, Lock, Semaphore, producer-consumer — тема про асинхронную координацию без потоков.
-
Python: debug и ловушки asyncio — раскрыть debug mode, forgotten awaits, blocking calls inside loop и run_in_executor.
-
Python 3.14: concurrent.interpreters и subinterpreters — отдельный доклад про новую стандартную возможность; раскрыть isolation, отдельные GIL на интерпретатор и модель обмена данными.
-
Python: GIL, multiprocessing, subinterpreters и free-threaded CPython — сравнительный доклад без воды; раскрыть, какой путь выбирать для CPU-bound, I/O-bound и смешанных нагрузок.
5) JavaScript / TypeScript (browser + Node.js) — 10 тем
Для JS/TS важно не путать модели: в браузере — Web Workers, SharedArrayBuffer, Atomics и Web Locks; в Node — event loop, worker pool, worker_threads, streams/backpressure и async context propagation. TypeScript здесь наследует те же runtime-мод
-
Browser JS: Worker, Dedicated Workers, Shared Workers — доклад о фоновых потоках в браузере; раскрыть жизненный цикл, ограничения DOM и сценарии CPU-offload.
-
Browser JS: postMessage, structured clone, transferables — отдельная тема по обмену данными; раскрыть copy vs transfer и стоимость сериализации.
-
Browser JS: SharedArrayBuffer + TypedArray — доклад о разделяемой памяти; раскрыть layout shared buffers и правила доступа.
-
Browser JS: Atomics — разобрать load/store/add/sub/compareExchange, wait/notify и паттерны на shared memory.
-
Browser JS: Web Locks API (navigator.locks) — тема про координацию между вкладками/воркерами; раскрыть leader election, lock scopes и fair usage.
-
Node.js: event loop, worker pool и правило “don’t block the event loop” — доклад о фундаменте Node concurrency; раскрыть CPU-bound vs I/O-bound код.
-
Node.js: worker_threads — показать, когда брать worker threads вместо обычного async I/O; раскрыть создание worker, parentPort, workerData.
-
Node.js: shared memory в worker_threads — раскрыть SharedArrayBuffer, transfer list, MessageChannel и разницу между копированием и разделением.
-
Node.js: Streams и backpressure — конкретный доклад про конкурентную обработку потоков данных; раскрыть Readable/Writable/Transform, pressure propagation и throughput.
-
JS/TS: AbortController/AbortSignal и AsyncLocalStorage — тема про управление отменой и контекстом в асинхронных системах; раскрыть cancellation contract и traceable request context.
6) .NET / C# — 10 тем
В .NET concurrency очень широкая и прикладная: TPL, Parallel loops, Parallel.ForEachAsync, PLINQ, concurrent collections, Interlocked, SemaphoreSlim, CancellationToken, Channel<T> и TPL Dataf
-
C#: Task vs Thread vs ThreadPool — доклад о базовых единицах выполнения; раскрыть cost model и почему большинство современного кода строится через Task.
-
C#: Parallel.For / Parallel.ForEach / Partitioner — конкретная тема по data parallelism; раскрыть thread-local state, early break и partitioning strategies.
-
C#: Parallel.ForEachAsync — отдельный современный доклад; раскрыть параллельную обработку IEnumerable/IAsyncEnumerable и контроль конкуренции.
-
C#: async/await, Task.WhenAll, Task.WhenAny — тема про orchestration async-операций; раскрыть composition, aggregation exceptions и fan-out запросов.
-
C#: PLINQ (AsParallel, AsOrdered, ForAll) — доклад о параллельных запросах; раскрыть cost model, ordering и почему PLINQ не ускоряет всё подряд.
-
C#: producer-consumer в .NET — ConcurrentDictionary, ConcurrentQueue, BlockingCollection vs Channel<T> — сравнить коллекции и каналы для разных сценариев.
-
C#: Interlocked — low-level доклад о атомарных счётчиках и CAS-операциях; раскрыть, где Interlocked заменяет lock, а где нет.
-
C#: SemaphoreSlim — тема про bounded concurrency и ограничение параллелизма; раскрыть rate limiting, async waits и локальный semaphore semantics.
-
C#: CancellationToken / CancellationTokenSource — доклад о cooperative cancellation; раскрыть propagation, linked tokens и корректную отмену длинных операций.
-
C#: Channel<T> и TPL Dataflow — доклад про современные pipeline-модели; раскрыть bounded/unbounded channels, block linking, backpressure и coarse-grained actor/dataflow style.
7) Rust — 8 тем
Rust даёт одновременно безопасные native threads, сильный std::sync, async/await через runtime, data-parallelism через Rayon и богатую экосистему вроде Crossbeam и Loom для тестирования конкурентного к
-
Rust: std::thread::spawn, Builder, JoinHandle — доклад про native OS threads; раскрыть 'static и Send-ограничения, именование и stack size.
-
Rust: Arc, Mutex, RwLock, Condvar, Once — тема про shared-state synchronization; раскрыть ownership, interior mutability и poison semantics.
-
Rust: каналы (std::sync message passing) — доклад про message-passing стиль; раскрыть producer-consumer, closing semantics и связь с ownership.
-
Rust: std::sync::atomic — low-level доклад; раскрыть атомики в паре с Arc, memory ordering и где Rust всё равно не спасёт от логической гонки.
-
Rust: async/await, Future, Poll, Waker — концептуальный, но не водяной доклад именно по runtime-механике async Rust.
-
Tokio: runtime, spawn, select!, каналы и cancellation — отдельный прикладной доклад по главному async runtime Rust.
-
Rayon: ParallelIterator, join, par_sort — доклад про data parallelism; раскрыть, как быстро распараллелить CPU-heavy код без ручных потоков.
-
Rust: Crossbeam + Loom — тема про очереди, work-stealing, epoch-based structures и systematic testing concurrent code.
8) MPI / CUDA / GPU — 7 тем
Для HPC и высокопроизводительных систем обязательны MPI 4.1 и CUDA 13.2: у MPI — обмен сообщениями, коллективы, топологии и новые partitioned communications; у CUDA — execution model, streams и современная GPU-оркестра
-
MPI: point-to-point (Send/Recv, nonblocking, persistent) — доклад о базовой и продвинутой передаче сообщений; раскрыть matching semantics, buffering и overlap computation/communication.
-
MPI: collective communication (Barrier, Bcast, Reduce, Allreduce, nonblocking/persistent collectives) — раскрыть, как строятся масштабируемые коллективные этапы.
-
MPI: communicators, groups, Cartesian topologies, neighborhood patterns — тема про структурирование процессов; раскрыть topology-aware decomposition и hardware mapping.
-
MPI 4.1: partitioned communication — современный доклад; раскрыть partial completion, MPI_PARRIVED, взаимодействие с threads/tasks/OpenMP.
-
CUDA: execution model (grid, block, warp, memory hierarchy) — фундаментальный доклад; раскрыть global/shared/local memory и SIMT execution.
-
CUDA: streams, events, async memcpy — тема про overlap и pipeline на GPU; раскрыть stream concurrency и скрытие latency.
-
CUDA: cooperative groups, graphs, dynamic parallelism и performance tuning — продвинутый доклад; раскрыть launch overhead, occupancy, shared memory tuning и kernel orchestration.
10 дополнительных тем
Это уже менее массовые, но вполне актуальные экосистемы и модели конкурентного программирования. Они хорошо подходят как резерв, если нужен более широкий охват
-
Kotlin: Channel и Flow — раскрыть pipeline, backpressure и cold/hot stream semantics в coroutine-модели.
-
Swift Concurrency: async/await, Task, TaskGroup — доклад о современной concurrency-модели Swift; раскрыть child tasks и structured concurrency.
-
Swift: actor, Sendable, strict concurrency — тема про защиту состояния на уровне языка; раскрыть actor isolation и migration к строгой модели Swift 6.
-
Erlang: spawn, mailboxes, receive, links, monitors — доклад про классическую actor/process-модель и fault-tolerant concurrency.
-
Elixir: GenServer, Task, Supervisor — разобрать server-process abstraction, supervision tree и stateful process design.
-
Akka Typed: actors, supervision, mailbox discipline — конкретный доклад по typed actor model на JVM.
-
Akka Streams: backpressure, graphs, async boundaries — тема про non-blocking stream processing и composition graph’ов.
-
Julia: Threads.@threads, @spawn, Task, Channel, distributed — доклад про современный scientific concurrency stack Julia.
-
Clojure: core.async и core.async.flow — раскрыть go-blocks, каналы, flow topology и observability.
-
Scala: Future, Promise, ExecutionContext — доклад про неблокирующую композицию вычислений и управление thread pools.
https://webprogr.ru/~JUMIs