projects:libcds:timestamp_structures
Table of Contents
Concurrent Data-Structures Through Explicit Timestamping
Перечень доработок
- Удаление неиспользуемой памяти
- Избавиться от ограничения количества потоков
- Использование различных моделей памяти(?)
Вопросы
- Стоит ли реализовавывать контейнер на RCU вместо HP?
- [khizmax] Хорошо бы иметь обе - для RCU и для HP. Это две совершенно разные техники, требуют двух разных специализаций. Для RCU писать проще, но там могут возникнуть сложности с физическим удалением - внутри критической секции RCU вызывать retire_ptr (удаление элемента) нельзя, будет deadlock
- Избавление от зависимости количества HP заданных в системе. Сравнение производительности c HP реализацией.
- [khizmax] Вот тут я не понял. Избавление от кол-ва HP - это переписать HP. Задача интересная, хватит ли времени?
- Стоит ли включать в текущую систему тестирования libcds, или использовать Google Tests/аналоги.
- [khizmax] Использовать Google Test. В dev-ветке unit-тесты уже на 80% переведены на gtest (попутно найдено немало ошибок), создана инфраструктура для stress (многопоточных) тестов, stress-тесты для очереди и стека переведены на gtest
- Как правильно производить тестирование дека? Какую статистику было бы полезно собирать? Проваленные операции извлечения, количество извлечений, количество добавлений?
- [khizmax] Тестировать как очередь (2 реализации - лево- и правосторонняя) и как стек (тоже 2 реализации).
- [khizmax] Кол-во извлечений/добавлений слева/справа + кол-во интересных случаев, например, сколько раз не удалось добавить с первого раза (contention на CAS). Вообще это видно по алгоритму, когда его напишешь и начинаешь отлаживать
- Имеет ли смысл попробовать использовать тестирование алгоритма через CB-DPOR?
- [khizmax] Безусловно имеет. Тут я не могу что-либо порекомендовать, так как не использовал его. Но если получиться как-то это прикрутить - здорово. Также обратить внимание на threadSanitizer - он уже есть из коробки (gcc, clang), использовать его просто (компиляция со спец. ключами), потом ломать голову над тем, что он нашел
projects/libcds/timestamp_structures.txt · Last modified: 2016/05/22 10:44 by kel