# Turbo Charge CPU Utilization in Fork/Join Using the ManagedBlocker

- Institution: CERN
- Department: Conferences
- Speaker: Heinz Kabutz
- Year: 2017
- Language: English
- Source: [CERN](https://videos.cern.ch/record/3017085)
- Licence: [CERN](http://copyright.web.cern.ch)
- Who can watch: Teens profiles and older (sources give no ratings; placed by Invisible Network from the source's own words)

Fork/Join is a framework for parallelizing calculations using recursive decomposition, also called divide and conquer. These algorithms occasionally end up duplicating work, especially at the beginning of the run. We can reduce wasted CPU cycles by implementing a reserved caching scheme. Before a task starts its calculation, it tries to reserve an entry in the shared map. If it is successful, it immediately begins. If not, it blocks until the other thread has finished its calculation. Unfortunately this might result in a significant number of blocked threads, decreasing CPU utilization. In this talk we will demonstrate this issue and offer a solution in the form of the ManagedBlocker. Combined with the Fork/Join, it can keep parallelism at the desired level..

0:00:00 Slide 1

0:00:46 Slide 2

0:01:19 Slide 3

0:01:36 Slide 4

0:02:35 Slide 5

0:03:33 Slide 6

0:04:08 Slide 7

0:05:00 Slide 8

0:05:26 Slide 9

0:05:31 Slide 10

0:05:36 Slide 11

0:05:40 Slide 12

0:05:44 Slide 13

0:05:48 Slide 14

0:05:52 Slide 15

0:05:57 Slide 16

0:06:01 Slide 17

0:06:10 Slide 18

0:06:20 Slide 19

0:06:24 Slide 20

0:06:28 Slide 21

0:06:32 Slide 22

0:06:36 Slide 23

0:06:40 Slide 24

0:06:44 Slide 25

0:06:48 Slide 26

0:06:53 Slide 27

0:06:59 Slide 28

0:07:04 Slide 29

0:07:08 Slide 30

0:07:12 Slide 31

0:07:16 Slide 32

0:07:20 Slide 33

0:07:24 Slide 34

0:07:28 Slide 35

0:07:33 Slide 36

0:07:37 Slide 37

0:07:41 Slide 38

0:07:45 Slide 39

0:07:49 Slide 40

0:07:53 Slide 41

0:07:57 Slide 42

0:08:01 Slide 43

0:08:05 Slide 44

0:08:09 Slide 45

0:08:14 Slide 46

0:08:25 Slide 47

0:09:05 Slide 48

0:09:10 Slide 49

0:09:14 Slide 50

0:09:18 Slide 51

0:09:22 Slide 52

0:09:28 Slide 53

0:09:32 Slide 54

0:09:36 Slide 55

0:09:43 Slide 56

0:09:47 Slide 57

0:10:27 Slide 58

0:10:31 Slide 59

0:10:35 Slide 60

0:10:39 Slide 61

0:10:43 Slide 62

0:10:47 Slide 63

0:10:51 Slide 64

0:10:55 Slide 65

0:10:59 Slide 66

0:11:03 Slide 67

0:11:07 Slide 68

0:11:11…

## Lectures

1. [Turbo Charge CPU Utilization in Fork/Join Using the ManagedBlocker](https://invisiblenetwork.ai/learn/cern/3017085/014db4fc7573), 53 min (CERN's player)
