Hydra2022
所属分类:超算/并行计算
开发工具:kotlin
文件大小:0KB
下载次数:0
上传日期:2022-06-01 15:33:05
上 传 者:
sh-1993
说明: Hydra 22“并发编程简介”系列的任务分配,
(Task assignments for the "introduction to Concurrent Programming" series at Hydra 22,)
文件列表:
build.gradle.kts (812, 2022-06-01)
gradle.properties (27, 2022-06-01)
gradle/ (0, 2022-06-01)
gradle/wrapper/ (0, 2022-06-01)
gradle/wrapper/gradle-wrapper.jar (55190, 2022-06-01)
gradle/wrapper/gradle-wrapper.properties (201, 2022-06-01)
gradlew (5302, 2022-06-01)
gradlew.bat (2184, 2022-06-01)
src/ (0, 2022-06-01)
src/counter/ (0, 2022-06-01)
src/counter/Counter.kt (401, 2022-06-01)
src/dijkstra/ (0, 2022-06-01)
src/dijkstra/Dijkstra.kt (2717, 2022-06-01)
src/faaqueue/ (0, 2022-06-01)
src/faaqueue/FAAQueue.kt (1869, 2022-06-01)
src/fcqueue/ (0, 2022-06-01)
src/fcqueue/FCQueue.kt (395, 2022-06-01)
src/msqueue/ (0, 2022-06-01)
src/msqueue/MSQueue.kt (925, 2022-06-01)
src/stack/ (0, 2022-06-01)
src/stack/TreiberStack.kt (651, 2022-06-01)
test/ (0, 2022-06-01)
test/Common.kt (360, 2022-06-01)
test/dijkstra/ (0, 2022-06-01)
test/dijkstra/DijkstraTest.kt (3918, 2022-06-01)
test/faaqueue/ (0, 2022-06-01)
test/faaqueue/FAAQueueTest.kt (1074, 2022-06-01)
test/fcqueue/ (0, 2022-06-01)
test/fcqueue/FCQueueTest.kt (1071, 2022-06-01)
test/msqueue/ (0, 2022-06-01)
test/msqueue/MSQueueTest.kt (1071, 2022-06-01)
test/stack/ (0, 2022-06-01)
test/stack/TreiberStackTest.kt (1344, 2022-06-01)
# Introduction to Concurrent Programming, Hydra'22: Task Assignments
In this repository, you will find the assignments for the "Introduction to Concurrent Programming" series at Hydra'22.
All assignments are in [Kotlin](https://kotlinlang.org) and leverage the [kotlinx.atomicfu](https://github.com/Kotlin/kotlinx.atomicfu/)
library that simplifies using the concurrent primitives, such as `Compare-and-Set` and `Fetch-and-Add`.
Please see the example of the atomic counter implementation in `src/counter` to get the intuition on how to use the library.
## 1. Classic Stack and Queue Algorithms
Please complete the Treiber stack and Michael-Scott queue algorithms in the `src/stack` and `src/msqueue` folders.
To check the implementations for correctness, run `./gradlew test --tests "stack.*"` and `./gradlew test --tests "msqueue.*"`, correspondingly.
## 2. Modern Queues and Flat Combining
Please complete the `Fetch-and-Add`-based queue implementation in `src/faaqueue` and implement a concurrent queue
that leverages the flat-combining technique in `src/fcqueue`.
To run the tests, use `./gradlew test --tests "faaqueue.*"` and `./gradlew test --tests "fcqueue.*"`.
## 3. Relaxed Data Structures for Parallel Algorithms
Please make the classic Dijkstra algorithm concurrent with a Multi-Queue or Stealing Multi-Queue under the hood
in the `src/dijkstra` folder. To run the tests, use `./gradlew test --tests "dijkstra.*"`.
近期下载者:
相关文件:
收藏者: