Open Source & Linux Lab

It's better when it's simple

User Tools

Site Tools


projects:libcds:timestamp_structures

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
projects:libcds:timestamp_structures [2016/04/01 13:49] kelprojects:libcds:timestamp_structures [2016/04/01 18:16] – [Вопросы] khizmax
Line 11: Line 11:
  
   - Стоит ли реализовавывать контейнер на RCU вместо HP?   - Стоит ли реализовавывать контейнер на RCU вместо HP?
 +      - //[khizmax] Хорошо бы иметь обе - для RCU и для HP. Это две совершенно разные техники, требуют двух разных специализаций. Для RCU писать проще, но там могут возникнуть сложности с физическим удалением - внутри критической секции RCU вызывать retire_ptr (удаление элемента) нельзя, будет deadlock //
   - Избавление от зависимости количества HP заданных в системе. Сравнение производительности c HP реализацией.   - Избавление от зависимости количества HP заданных в системе. Сравнение производительности c HP реализацией.
 +      - //[khizmax] Вот тут я не понял. Избавление от кол-ва HP - это переписать HP. Задача интересная, хватит ли времени?//
   - Стоит ли включать в текущую систему тестирования libcds, или использовать Google Tests/аналоги.   - Стоит ли включать в текущую систему тестирования libcds, или использовать Google Tests/аналоги.
 +      - //[khizmax] Использовать Google Test. В dev-ветке unit-тесты уже на 80% переведены на gtest (попутно найдено немало ошибок), создана инфраструктура для stress (многопоточных) тестов, stress-тесты для очереди и стека переведены на gtest//
   - Как правильно производить тестирование дека? Какую статистику было бы полезно собирать? Проваленные операции извлечения, количество извлечений, количество добавлений?   - Как правильно производить тестирование дека? Какую статистику было бы полезно собирать? Проваленные операции извлечения, количество извлечений, количество добавлений?
 +      - //[khizmax] Тестировать как очередь (2 реализации - лево- и правосторонняя) и как стек (тоже 2 реализации).//
 +      - //[khizmax] Кол-во извлечений/добавлений слева/справа + кол-во интересных случаев, например, сколько раз не удалось добавить с первого раза (contention на CAS). Вообще это видно по алгоритму, когда его напишешь и начинаешь отлаживать//
   - Имеет ли смысл попробовать использовать тестирование алгоритма через {{http://dspace.mit.edu/bitstream/handle/1721.1/92058/895662651-MIT.pdf|CB-DPOR}}?   - Имеет ли смысл попробовать использовать тестирование алгоритма через {{http://dspace.mit.edu/bitstream/handle/1721.1/92058/895662651-MIT.pdf|CB-DPOR}}?
 +      - //[khizmax] Безусловно имеет. Тут я не могу что-либо порекомендовать, так как не использовал его. Но если получиться как-то это прикрутить - здорово. Также обратить внимание на threadSanitizer - использовать его просто (компиляция со спец. ключами), потом ломать голову над тем, что он нашел//
projects/libcds/timestamp_structures.txt · Last modified: 2016/05/22 10:44 by kel