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.*"`.

近期下载者

相关文件


收藏者