Designing an ultra low-overhead multithreading runtime for Nimfrom? ◇ 3 years ago: started writing a tensor library in Nim. ◇ 2 threading APIs at the time: OpenMP and simple threadpool ◇ 1 year ago: complete refactoring of the internals 3 Agenda ◇ Understanding - Userland, lightweight context switches - Cannot use hardware threads Preemptive: - PThreads (OpenMP, TBB, Cilk, …) - Scheduled by the OS, heavier context switches - Need synchronization primitives: bus, caches, ... 14 Data parallelism Parallel for loop - Same instructions on multiple data - OpenMP - Use-cases - Vectors, matrices, multi-dimensional arrays and tensors - Challenges: - Nested0 码力 | 37 页 | 556.64 KB | 1 年前3
Computer Programming with the Nim Programming Language
and most modern programming languages support it. For older languages like C, extensions like OpenMP for threading support have been developed. The various forms of asynchronous operation were introduced And finally, when we use the C compiler backend, we may also use the parallel construct of the OpenMP C library. Some other programming languages like Lua or Go offer also virtual (green) threads,0 码力 | 865 页 | 7.45 MB | 1 年前3
Computer Programming with the Nim Programming Language
and most modern programming languages support it. For older languages like C, extensions like OpenMP for threading support have been developed. The various forms of asynchronous operation were introduced And finally, when we use the C compiler backend, we may also use the parallel construct of the OpenMP C library. Some other programming languages like Lua or Go offer also virtual (green) threads,0 码力 | 784 页 | 2.13 MB | 1 年前3
Computer Programming with the Nim Programming Languagetask, and most modern programming languages support it. For older languages like C, extensions like OpenMP for threading support have been developed. The various forms of asynchronous operation were introduced finally, when we use the C compiler backend, we may also use the parallel con 414 struct of the OpenMP C library. Some other programming languages like Lua or Go offer also virtual (green) threads, or0 码力 | 512 页 | 3.54 MB | 1 年前3
Computer Programming with the Nim Programming Languagetask, and most modern programming languages support it. For older languages like C, extensions like OpenMP for threading support have been developed. The various forms of asynchronous operation were introduced finally, when we use the C compiler backend, we may also use the parallel construct of the 411 OpenMP C library. Some other programming languages like Lua or Go offer also virtual (green) threads, or0 码力 | 508 页 | 3.50 MB | 1 年前3
Computer Programming with the Nim Programming Languagetask, and most modern programming languages support it. For older languages like C, extensions like OpenMP for threading support have been developed. The various forms of asynchronous operation were introduced finally, when we use the C compiler backend, we may also use the parallel con 414 struct of the OpenMP C library. Some other programming languages like Lua or Go offer also virtual (green) threads, or0 码力 | 512 页 | 3.53 MB | 1 年前3
Computer Programming with the Nim Programming Languagetask, and most modern programming languages support it. For older languages like C, extensions like OpenMP for threading support have been developed. The various forms of asynchronous operation were introduced finally, when we use the C compiler backend, we may also use the parallel construct of the 411 OpenMP C library. Some other programming languages like Lua or Go offer also virtual (green) threads, or0 码力 | 508 页 | 3.54 MB | 1 年前3
Computer Programming with the Nim Programming Languagetask, and most modern programming languages support it. For older languages like C, extensions like OpenMP for threading support have been developed. The various forms of asynchronous operation were introduced finally, when we use the C compiler backend, we may also use the parallel construct of the 411 OpenMP C library. Some other programming languages like Lua or Go offer also virtual (green) threads, or0 码力 | 508 页 | 3.50 MB | 1 年前3
Computer Programming with the Nim Programming Languagetask, and most modern programming languages support it. For older languages like C, extensions like OpenMP for threading support have been developed. The various forms of asynchronous operation were introduced finally, when we use the C compiler backend, we may also use the parallel construct of the 411 OpenMP C library. Some other programming languages like Lua or Go offer also virtual (green) threads, or0 码力 | 508 页 | 3.52 MB | 1 年前3
Computer Programming with the Nim Programming Languagetask, and most modern programming languages support it. For older languages like C, extensions like OpenMP for threading support have been developed. The various forms of asynchronous operation were introduced finally, when we use the C compiler backend, we may also use the parallel construct of the 411 OpenMP C library. Some other programming languages like Lua or Go offer also virtual (green) threads, or0 码力 | 508 页 | 3.53 MB | 1 年前3
共 29 条
- 1
- 2
- 3













