Cargando…

Turbo Charge CPU Utilization in Fork/Join Using the ManagedBlocker

<!--HTML-->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 sc...

Descripción completa

Detalles Bibliográficos
Autor principal: Kabutz, Heinz
Lenguaje:eng
Publicado: 2017
Materias:
Acceso en línea:http://cds.cern.ch/record/2254791
_version_ 1780953664638156800
author Kabutz, Heinz
author_facet Kabutz, Heinz
author_sort Kabutz, Heinz
collection CERN
description <!--HTML-->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.
id cern-2254791
institution Organización Europea para la Investigación Nuclear
language eng
publishDate 2017
record_format invenio
spelling cern-22547912022-11-02T22:10:22Zhttp://cds.cern.ch/record/2254791engKabutz, HeinzTurbo Charge CPU Utilization in Fork/Join Using the ManagedBlockerVoxxed Days CERNConferences<!--HTML-->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.oai:cds.cern.ch:22547912017
spellingShingle Conferences
Kabutz, Heinz
Turbo Charge CPU Utilization in Fork/Join Using the ManagedBlocker
title Turbo Charge CPU Utilization in Fork/Join Using the ManagedBlocker
title_full Turbo Charge CPU Utilization in Fork/Join Using the ManagedBlocker
title_fullStr Turbo Charge CPU Utilization in Fork/Join Using the ManagedBlocker
title_full_unstemmed Turbo Charge CPU Utilization in Fork/Join Using the ManagedBlocker
title_short Turbo Charge CPU Utilization in Fork/Join Using the ManagedBlocker
title_sort turbo charge cpu utilization in fork/join using the managedblocker
topic Conferences
url http://cds.cern.ch/record/2254791
work_keys_str_mv AT kabutzheinz turbochargecpuutilizationinforkjoinusingthemanagedblocker
AT kabutzheinz voxxeddayscern