Open Source & Linux Lab

It's better when it's simple

User Tools

Site Tools


projects:libcds:tasks

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
projects:libcds:tasks [2017/02/25 14:59] kelprojects:libcds:tasks [2017/09/20 00:59] – Убран алгоритм по причине уже его реализованности kel
Line 103: Line 103:
  
 В libcds уже есть HP- и RCU-based реализации (без helping'а), требуется сделать append-only версию (без GC – cds::gc::nogc), то есть версию без возможности удаления элементов. Попробовать реализовать helping (будет хорошо, если helping будет включаться отдельным флагом в traits).  В libcds уже есть HP- и RCU-based реализации (без helping'а), требуется сделать append-only версию (без GC – cds::gc::nogc), то есть версию без возможности удаления элементов. Попробовать реализовать helping (будет хорошо, если helping будет включаться отдельным флагом в traits). 
- 
-==== [2010] Bronson,Casper,Chafi,Olukotun A Practical Concurrent Binary Search Tree.pdf ==== 
- 
-//Сложность://7\\ 
- 
-Реализация конкурентного AVL-tree, новый метод optimistic hand-over-hand locking. Проанализировать, какой SMR подходит (HP, RCU, оба), либо же алгоритм не требует никакой SMR схемы. 
  
 ==== [2011] Brown,Helga Non-blocking k-ary Search Trees.pdf ==== ==== [2011] Brown,Helga Non-blocking k-ary Search Trees.pdf ====
Line 131: Line 125:
 Реализация конкурентного trie. No comments. Реализация конкурентного trie. No comments.
  
-===== Реализованные ===== +===== Требующие доработки =====
-==== A.Williams “C++ Concurrency in Action” - lock-free стек на shared_ptr ==== +
-> //Сложность://1+ +
-> [[https://github.com/khizmax/libcds/pull/54|Pull request]] +
- +
-Алгоритм и его подробный анализ есть в книге. Требуется создать стек на C++11, используя оба алгоритма, описанных в книге: на shared_ptr и split reference counting. Оценить, можно ли создать intrusive-версию. +
 ==== A.Williams “C++ Concurrency in Action” - lock-free очередь на shared_ptr ==== ==== A.Williams “C++ Concurrency in Action” - lock-free очередь на shared_ptr ====
 > //Сложность://2 > //Сложность://2
Line 144: Line 132:
 Алгоритм и его подробный анализ есть в книге. Требуется создать очередь на C++11. Оценить, можно ли создать intrusive-версию. Алгоритм и его подробный анализ есть в книге. Требуется создать очередь на C++11. Оценить, можно ли создать intrusive-версию.
  
-==== [2014Dodds,Haas,Kirsch Fast Concurrent Data-Structures Through Explicit Timestamping.pdf ====+==== A.Williams “C++ Concurrency in Action” - lock-free стек на shared_ptr ==== 
 +> //Сложность://1+ 
 +[[https://github.com/khizmax/libcds/pull/73|Pull request]
 + 
 +Алгоритм и его подробный анализ есть в книге. Требуется создать стек на C++11используя оба алгоритмаописанных в книге: на shared_ptr и split reference counting. Оценить, можно ли создать intrusive-версию.
  
 +==== [2014] Dodds,Haas,Kirsch Fast Concurrent Data-Structures Through Explicit Timestamping.pdf ====
 > //Сложность://4\\ > //Сложность://4\\
 > [[https://github.com/khizmax/libcds/pull/55|Pull request]] > [[https://github.com/khizmax/libcds/pull/55|Pull request]]
  
 Перспективный алгоритм построения lock-free стека, очереди, deque. Должен обеспечивать очень хорошую производительность для push-операций, так как push производится в локальный для потока storage. Псевдокод основан на tagged pointers, требуется применить какой-либо другой SMR – Hazard Pointers, reference counting. Перспективный алгоритм построения lock-free стека, очереди, deque. Должен обеспечивать очень хорошую производительность для push-операций, так как push производится в локальный для потока storage. Псевдокод основан на tagged pointers, требуется применить какой-либо другой SMR – Hazard Pointers, reference counting.
 +
 +===== Реализованные =====
 +
projects/libcds/tasks.txt · Last modified: 2019/02/04 20:12 by kel