Skip to content

Shared memory parallelism in Julia with multi-threading | Kiran Pamnany | Cambridge Julia Meetup (May 2018) #151

@KZiemian

Description

@KZiemian

Shared memory parallelism in Julia with multi-threading, https://www.youtube.com/watch?v=YdiZa0Y3F3c

I'm not sure that I used words "parallel" and "parallelism" in correct way. Someone should check that.

00:00 Welcome!
00:28 Why we need threads?
01:37 Task parallelism
02:43 Data parallelism
03:35 Julia's experimental threading infrastructure added in 2015/2016
04:35 Successes of aforementioned threading infrastructure
05:35 What we've learned
06:25 Problem is not adding threads to Julia, but making them useful at every level
06:59 Nested parallelism: parallel code calling function from library that is also parallel
08:18 Example: multiplying two n x n matrices
09:29 Example: running code sequentially
10:10 Example: you need O(n^2) space
10:27 Example: running code in parallel on 4 cores with OpenMP, OMP_NESTED = 1
11:26 Example: such parallel code need O(n^3) in space
11:37 Another way: work stealing
12:47 Problem: work stealing algorithm essentially run like serial algorithm
13:57 Parallel depth-first scheluding
15:52 partr -- parallel task runtime
17:15 partr implementation
18:30 partr -- priority queues
21:23 partr -- handling nested parallelism
23:22 Possible problem: we not synchronize at each spawn point
24:13 Why all these things are important?
24:59 Q&A: is Julia more suitable for implementation of partr than other languages?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions