Russian Qt Forum
Май 22, 2024, 08:40 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Неблокируемый список  (Прочитано 12025 раз)
brankovic
Гость
« Ответ #15 : Апрель 05, 2011, 21:11 »

А таки могу я взять объект из стека, поковыряться и вернуть обратно в стек, и чтобы всё lock-free?
Непонятно что значит "вернуть обратно в стек". Когда Вы напр делаете push_bаck (std::vector), то контейнер копирует в себя, эти расходы можно сократить используя указатели. То же самое и здесь, дополнительных приседаний не требуется, и никаких локов это не вызывает.

Ладно, а по FIFO есть идеи?  Улыбающийся

Поскольку даже по стеку у нас с вами нет понимания (и ни у кого из читающих, я думаю), то бессмысленно обсуждать. Загуглите Michael Maged hazard pointers, это серебряная пуля в своём роде, любой контейнер можно на их основе сделать локфри и любой алгоритм. По сути ваш подход, кстати. Но ИМХО это непрактично для реального кода, слишком сложно.

Да, про альтернативный подход SimpleSunny хорошую ссылку на rsdn постил ещё в прошлой теме, где remark (кажется) рассказывает о своей идее.
« Последнее редактирование: Апрель 05, 2011, 21:20 от brankovic » Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2094



Просмотр профиля
« Ответ #16 : Апрель 05, 2011, 21:34 »

А таки могу я взять объект из стека, поковыряться и вернуть обратно в стек, и чтобы всё lock-free?
Непонятно что значит "вернуть обратно в стек". Когда Вы напр делаете push_bаck (std::vector), то контейнер копирует в себя, эти расходы можно сократить используя указатели. То же самое и здесь, дополнительных приседаний не требуется, и никаких локов это не вызывает.

Ладно, а по FIFO есть идеи?  Улыбающийся

Поскольку даже по стеку у нас с вами нет понимания (и ни у кого из читающих, я думаю), то бессмысленно обсуждать. Загуглите Michael Maged hazard pointers, это серебряная пуля в своём роде, любой контейнер можно на их основе сделать локфри и любой алгоритм. По сути ваш подход, кстати. Но ИМХО это непрактично для реального кода, слишком сложно.

Да, про альтернативный подход SimpleSunny хорошую ссылку на rsdn постил ещё в прошлой теме, где m_ax (кажется) рассказывает о своей идее.
Я имел в виду не стек. Я предлогал механизм, который бы позволил сократить (не полностью избавиться) затраты от простоя потоков при работе с данными. Идея была в создании внутреннего буфера данных (конечного) и в соответствующей корреляции читающих и пишующих потоков.
Короче lockfree, но чуть более эффективный.   
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #17 : Апрель 05, 2011, 21:59 »

Поскольку даже по стеку у нас с вами нет понимания (и ни у кого из читающих, я думаю), то бессмысленно обсуждать. Загуглите Michael Maged hazard pointers, это серебряная пуля в своём роде, любой контейнер можно на их основе сделать локфри и любой алгоритм. По сути ваш подход, кстати. Но ИМХО это непрактично для реального кода, слишком сложно.
Помню (давно) читал фантастику сына, запомнилась одна - автор(ы) Олди (точно). название "Маг в законе" (это помню уже смутно, могу напутать). Действие происходит в дореволюционной России, "маги" набирают себе "учеников", которые в конце-концов тоже становятся магами. Обаятельный полицейский с ними борется и все такое. Помимо приключений авторы доказывают что "копия всегда слабее оригинала", ученик никогда не достигает уровня учителя. не говоря уже о том чтобы превзойти его (конечно с ними можно соглашаться или нет).

Зная все больше и больше, изучая все большее число ссылок, мы конечно "растем". Но в то же время - утрачиваем непосредственность, непредвзятость, и слишком часто пытаемся выехать на достигнутом (по существу на запомненном). Не становимся ли мы (бледнеющей) копией "учителей"?

Ладно, это просто так, не воспринимайте всерьез  Улыбающийся
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2094



Просмотр профиля
« Ответ #18 : Апрель 05, 2011, 22:37 »

Поскольку даже по стеку у нас с вами нет понимания (и ни у кого из читающих, я думаю), то бессмысленно обсуждать. Загуглите Michael Maged hazard pointers, это серебряная пуля в своём роде, любой контейнер можно на их основе сделать локфри и любой алгоритм. По сути ваш подход, кстати. Но ИМХО это непрактично для реального кода, слишком сложно.
Помню (давно) читал фантастику сына, запомнилась одна - автор(ы) Олди (точно). название "Маг в законе" (это помню уже смутно, могу напутать). Действие происходит в дореволюционной России, "маги" набирают себе "учеников", которые в конце-концов тоже становятся магами. Обаятельный полицейский с ними борется и все такое. Помимо приключений авторы доказывают что "копия всегда слабее оригинала", ученик никогда не достигает уровня учителя. не говоря уже о том чтобы превзойти его (конечно с ними можно соглашаться или нет).

Зная все больше и больше, изучая все большее число ссылок, мы конечно "растем". Но в то же время - утрачиваем непосредственность, непредвзятость, и слишком часто пытаемся выехать на достигнутом (по существу на запомненном). Не становимся ли мы (бледнеющей) копией "учителей"?

Ладно, это просто так, не воспринимайте всерьез  Улыбающийся
Я тож один рассказ тут вспомнил...
Жил да был один математик. Он не читал современных статей, книг и всё прочее. И как то решил создать машинку (метод) позволяющий очень просто решать очень широкий круг задач. Заперся в четырёх стенах, закинулся бумагой и начал писать, решать, выводить...
Прошло много времени и в один прекрасный день ему всё же удалось это сделать. Он был очень счастлив и горд собой. И вот решил показать свой замечательный труд современникам (коллегам).
Коллеги посмотрели и сказали:
-Круто, чувак, дифференциальное исчисление это реально полезная машинка, вот только известна со времён Ньютона, который и заложил эти основы.

К чему это я? Весь прогресс, который мы не можем сегодня не заметить обязан именно доступностью и открытостью информации, многочисленным статьям, конференциям, обмену опытом.

 
Не согласен категорически с тем, что:
Цитировать
Зная все больше и больше, изучая все большее число ссылок, мы конечно "растем". Но в то же время - утрачиваем непосредственность, непредвзятость, и слишком часто пытаемся выехать на достигнутом (по существу на запомненном). Не становимся ли мы (бледнеющей) копией "учителей"?


Хорошо, что Вы теор. физикой не занимаетесь)) А то бы жили сейчас в 17 веке))

Ладно, и Вы не воспринимайте всерьёз)) просто моё имхо)
« Последнее редактирование: Апрель 05, 2011, 22:47 от m_ax » Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #19 : Апрель 05, 2011, 23:15 »

Прошло много времени и в один прекрасный день ему всё же удалось это сделать. Он был очень счастлив и горд собой. И вот решил показать свой замечательный труд современникам (коллегам).
Коллеги посмотрели и сказали:
-Круто, чувак, дифференциальное исчисление это реально полезная машинка, вот только известна со времён Ньютона, который и заложил эти основы.
Ну и кто выиграл и кто проиграл? Чувак был счастлив/горд? Сами сказали что был. А тот что просто прочитал Ньютона? Да никогда не был. А сравнивать понимание достигнутое через свой опыт (пусть всегда с кучей ошибок, это нормально) с "просто освоенным" вообще нелепо.

Хорошо, что Вы теор. физикой не занимаетесь)) А то бы жили сейчас в 17 веке))
Моя специальность 3D, поэтому я живу где-то в 15-м(?)  Улыбающийся
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2094



Просмотр профиля
« Ответ #20 : Апрель 05, 2011, 23:26 »

Прошло много времени и в один прекрасный день ему всё же удалось это сделать. Он был очень счастлив и горд собой. И вот решил показать свой замечательный труд современникам (коллегам).
Коллеги посмотрели и сказали:
-Круто, чувак, дифференциальное исчисление это реально полезная машинка, вот только известна со времён Ньютона, который и заложил эти основы.
Ну и кто выиграл и кто проиграл? Чувак был счастлив/горд? Сами сказали что был. А тот что просто прочитал Ньютона? Да никогда не был. А сравнивать понимание достигнутое через свой опыт (пусть всегда с кучей ошибок, это нормально) с "просто освоенным" вообще нелепо.
Это да)) А теперь представте, как бы он был счастлив, если бы в его арсенале были современные методы и теории и потратив своё время он бы открыл нечто новое и гениальное)) За что бы получил Нобелевскую премию (хотя по математике её не дают, но ему бы дали)))
 Подмигивающий
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
brankovic
Гость
« Ответ #21 : Апрель 05, 2011, 23:54 »

А сравнивать понимание достигнутое через свой опыт...

если "чужие" знания это второй сорт, тогда что вы делаете на форуме? это типо признание себя троллём? Веселый
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #22 : Апрель 06, 2011, 08:39 »

Я имел в виду не стек. Я предлогал механизм, который бы позволил сократить (не полностью избавиться) затраты от простоя потоков при работе с данными. Идея была в создании внутреннего буфера данных (конечного) и в соответствующей корреляции читающих и пишующих потоков.
Короче lockfree, но чуть более эффективный.   
Мне это казалось привлекательным, но когда стал обдумывать как запостить - обнаружилось что ничего конкретного/внятного сказать не могу  Улыбающийся В самом деле, что мы хотим? Пусть напр первые 100 элементов контейнера "читаются" а следующие 100 "пишутся" - в принципе нет проблем но надо ставить локер на "какие 100". Др. случай - читающий может захватить данные надолго - напрашивается пусть он сделает копию и занимается с ней, а потом обновит как писатель. Словом, нет разумной постановки
Записан
CL0NE
Гость
« Ответ #23 : Апрель 13, 2011, 00:47 »

Может кому пригодится пара линков: http://www2.research.att.com/~bs/lock-free-vector.pdf
http://houndsblog.blogspot.com/2009/04/1.html
http://www.1024cores.net/
« Последнее редактирование: Апрель 13, 2011, 05:23 от CL0NE » Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.101 секунд. Запросов: 22.