Your SlideShare is downloading. ×
0
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12
20140511 parallel programming_kalishenko_lecture12
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

20140511 parallel programming_kalishenko_lecture12

260

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
260
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Транзакционная память STM HTM Калишенко Е.Л. ПОМИ 2014
  • 2. Проблемы locking || ● Нет связи ресурс-примитив ● Сложный контроль времени жизни ● Инверсия приоритетов и т.п ● Сложность алгоритмов на CAS ● Проблемы с атомарностью операций над несколькими структурами данных
  • 3. Транзакционность ● Организация транзакции ● Проверка на конфликты ● Применение или отмена
  • 4. Пример очереди
  • 5. Преимущества ● Отсутствие блокировок в коде ● Возможность контроля: откат, повтор... ● Лучшая утилизация ресурсов*
  • 6. HTM ● Уже реализованы алгоритмы поддержки когерентности кэшей (MESI) ● Достаточно сыграть на битах транзакционности в линейках кэша
  • 7. Ограничения HTM на кэше ● Транзакция ограничена размером кэша ● Время транзакции может быть ограничено квантом планирования
  • 8. Пример Transactional Synchronization Extensions ● Расширение gcc 4.7: __transaction_atomic { c = a - b; } int contains(int value) { int result; node_t *prev, *next; __transaction_atomic { prev = set->head; next = prev->next; while (next->val < val) { prev = next; next = prev->next; } result = (next->val == val); } return result; }

×