Russian Qt Forum
Ноябрь 23, 2024, 00:32
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Многопоточное программирование, процессы
>
Неблокируемый список
Страниц:
1
[
2
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Неблокируемый список (Прочитано 12332 раз)
brankovic
Гость
Re: Неблокируемый список (очередь)
«
Ответ #15 :
Апрель 05, 2011, 21:11 »
Цитата: Igors от Апрель 05, 2011, 20:51
Цитата: brankovic от Апрель 05, 2011, 19:52
А таки могу я взять объект из стека, поковыряться и вернуть обратно в стек, и чтобы всё lock-free?
Непонятно что значит "вернуть обратно в стек". Когда Вы напр делаете push_bаck (std::vector), то контейнер копирует в себя, эти расходы можно сократить используя указатели. То же самое и здесь, дополнительных приседаний не требуется, и никаких локов это не вызывает.
Ладно, а по FIFO есть идеи?
Поскольку даже по стеку у нас с вами нет понимания (и ни у кого из читающих, я думаю), то бессмысленно обсуждать. Загуглите Michael Maged hazard pointers, это серебряная пуля в своём роде, любой контейнер можно на их основе сделать локфри и любой алгоритм. По сути ваш подход, кстати. Но ИМХО это непрактично для реального кода, слишком сложно.
Да, про альтернативный подход
SimpleSunny
хорошую ссылку на rsdn постил ещё в прошлой теме, где
remark
(кажется) рассказывает о своей идее.
«
Последнее редактирование: Апрель 05, 2011, 21:20 от brankovic
»
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Неблокируемый список (очередь)
«
Ответ #16 :
Апрель 05, 2011, 21:34 »
Цитата: brankovic от Апрель 05, 2011, 21:11
Цитата: Igors от Апрель 05, 2011, 20:51
Цитата: brankovic от Апрель 05, 2011, 19:52
А таки могу я взять объект из стека, поковыряться и вернуть обратно в стек, и чтобы всё lock-free?
Непонятно что значит "вернуть обратно в стек". Когда Вы напр делаете push_bаck (std::vector), то контейнер копирует в себя, эти расходы можно сократить используя указатели. То же самое и здесь, дополнительных приседаний не требуется, и никаких локов это не вызывает.
Ладно, а по FIFO есть идеи?
Поскольку даже по стеку у нас с вами нет понимания (и ни у кого из читающих, я думаю), то бессмысленно обсуждать. Загуглите Michael Maged hazard pointers, это серебряная пуля в своём роде, любой контейнер можно на их основе сделать локфри и любой алгоритм. По сути ваш подход, кстати. Но ИМХО это непрактично для реального кода, слишком сложно.
Да, про альтернативный подход
SimpleSunny
хорошую ссылку на rsdn постил ещё в прошлой теме, где
m_ax
(кажется) рассказывает о своей идее.
Я имел в виду не стек. Я предлогал механизм, который бы позволил сократить (не полностью избавиться) затраты от простоя потоков при работе с данными. Идея была в создании внутреннего буфера данных (конечного) и в соответствующей корреляции читающих и пишующих потоков.
Короче lockfree, но чуть более эффективный.
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Неблокируемый список (очередь)
«
Ответ #17 :
Апрель 05, 2011, 21:59 »
Цитата: brankovic от Апрель 05, 2011, 21:11
Поскольку даже по стеку у нас с вами нет понимания (и ни у кого из читающих, я думаю), то бессмысленно обсуждать. Загуглите Michael Maged hazard pointers, это серебряная пуля в своём роде, любой контейнер можно на их основе сделать локфри и любой алгоритм. По сути ваш подход, кстати. Но ИМХО это непрактично для реального кода, слишком сложно.
Помню (давно) читал фантастику сына, запомнилась одна - автор(ы) Олди (точно). название "Маг в законе" (это помню уже смутно, могу напутать). Действие происходит в дореволюционной России, "маги" набирают себе "учеников", которые в конце-концов тоже становятся магами. Обаятельный полицейский с ними борется и все такое. Помимо приключений авторы доказывают что "копия всегда слабее оригинала", ученик никогда не достигает уровня учителя. не говоря уже о том чтобы превзойти его (конечно с ними можно соглашаться или нет).
Зная все больше и больше, изучая все большее число ссылок, мы конечно "растем". Но в то же время - утрачиваем непосредственность, непредвзятость, и слишком часто пытаемся выехать на достигнутом (по существу на запомненном). Не становимся ли мы (бледнеющей) копией "учителей"?
Ладно, это просто так, не воспринимайте всерьез
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Неблокируемый список (очередь)
«
Ответ #18 :
Апрель 05, 2011, 22:37 »
Цитата: Igors от Апрель 05, 2011, 21:59
Цитата: brankovic от Апрель 05, 2011, 21:11
Поскольку даже по стеку у нас с вами нет понимания (и ни у кого из читающих, я думаю), то бессмысленно обсуждать. Загуглите Michael Maged hazard pointers, это серебряная пуля в своём роде, любой контейнер можно на их основе сделать локфри и любой алгоритм. По сути ваш подход, кстати. Но ИМХО это непрактично для реального кода, слишком сложно.
Помню (давно) читал фантастику сына, запомнилась одна - автор(ы) Олди (точно). название "Маг в законе" (это помню уже смутно, могу напутать). Действие происходит в дореволюционной России, "маги" набирают себе "учеников", которые в конце-концов тоже становятся магами. Обаятельный полицейский с ними борется и все такое. Помимо приключений авторы доказывают что "копия всегда слабее оригинала", ученик никогда не достигает уровня учителя. не говоря уже о том чтобы превзойти его (конечно с ними можно соглашаться или нет).
Зная все больше и больше, изучая все большее число ссылок, мы конечно "растем". Но в то же время - утрачиваем непосредственность, непредвзятость, и слишком часто пытаемся выехать на достигнутом (по существу на запомненном). Не становимся ли мы (бледнеющей) копией "учителей"?
Ладно, это просто так, не воспринимайте всерьез
Я тож один рассказ тут вспомнил...
Жил да был один математик. Он не читал современных статей, книг и всё прочее. И как то решил создать машинку (метод) позволяющий очень просто решать очень широкий круг задач. Заперся в четырёх стенах, закинулся бумагой и начал писать, решать, выводить...
Прошло много времени и в один прекрасный день ему всё же удалось это сделать. Он был очень счастлив и горд собой. И вот решил показать свой замечательный труд современникам (коллегам).
Коллеги посмотрели и сказали:
-Круто, чувак, дифференциальное исчисление это реально полезная машинка, вот только известна со времён Ньютона, который и заложил эти основы.
К чему это я? Весь прогресс, который мы не можем сегодня не заметить обязан именно доступностью и открытостью информации, многочисленным статьям, конференциям, обмену опытом.
Не согласен категорически с тем, что:
Цитировать
Зная все больше и больше, изучая все большее число ссылок, мы конечно "растем". Но в то же время - утрачиваем непосредственность, непредвзятость, и слишком часто пытаемся выехать на достигнутом (по существу на запомненном). Не становимся ли мы (бледнеющей) копией "учителей"?
Хорошо, что Вы теор. физикой не занимаетесь)) А то бы жили сейчас в 17 веке))
Ладно, и Вы не воспринимайте всерьёз)) просто моё имхо)
«
Последнее редактирование: Апрель 05, 2011, 22:47 от m_ax
»
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Неблокируемый список (очередь)
«
Ответ #19 :
Апрель 05, 2011, 23:15 »
Цитата: m_ax от Апрель 05, 2011, 22:37
Прошло много времени и в один прекрасный день ему всё же удалось это сделать. Он был очень счастлив и горд собой. И вот решил показать свой замечательный труд современникам (коллегам).
Коллеги посмотрели и сказали:
-Круто, чувак, дифференциальное исчисление это реально полезная машинка, вот только известна со времён Ньютона, который и заложил эти основы.
Ну и кто выиграл и кто проиграл? Чувак был счастлив/горд? Сами сказали что был. А тот что просто прочитал Ньютона? Да никогда не был. А сравнивать понимание достигнутое через свой опыт (пусть всегда с кучей ошибок, это нормально) с "просто освоенным" вообще нелепо.
Цитата: m_ax от Апрель 05, 2011, 22:37
Хорошо, что Вы теор. физикой не занимаетесь)) А то бы жили сейчас в 17 веке))
Моя специальность 3D, поэтому я живу где-то в 15-м(?)
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Неблокируемый список (очередь)
«
Ответ #20 :
Апрель 05, 2011, 23:26 »
Цитата: Igors от Апрель 05, 2011, 23:15
Цитата: m_ax от Апрель 05, 2011, 22:37
Прошло много времени и в один прекрасный день ему всё же удалось это сделать. Он был очень счастлив и горд собой. И вот решил показать свой замечательный труд современникам (коллегам).
Коллеги посмотрели и сказали:
-Круто, чувак, дифференциальное исчисление это реально полезная машинка, вот только известна со времён Ньютона, который и заложил эти основы.
Ну и кто выиграл и кто проиграл? Чувак был счастлив/горд? Сами сказали что был. А тот что просто прочитал Ньютона? Да никогда не был. А сравнивать понимание достигнутое через свой опыт (пусть всегда с кучей ошибок, это нормально) с "просто освоенным" вообще нелепо.
Это да)) А теперь представте, как бы он был счастлив, если бы в его арсенале были современные методы и теории и потратив своё время он бы открыл нечто новое и гениальное)) За что бы получил Нобелевскую премию (хотя по математике её не дают, но ему бы дали)))
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
brankovic
Гость
Re: Неблокируемый список (очередь)
«
Ответ #21 :
Апрель 05, 2011, 23:54 »
Цитата: Igors от Апрель 05, 2011, 23:15
А сравнивать понимание достигнутое через свой опыт...
если "чужие" знания это второй сорт, тогда что вы делаете на форуме? это типо признание себя троллём?
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Неблокируемый список (очередь)
«
Ответ #22 :
Апрель 06, 2011, 08:39 »
Цитата: m_ax от Апрель 05, 2011, 21:34
Я имел в виду не стек. Я предлогал механизм, который бы позволил сократить (не полностью избавиться) затраты от простоя потоков при работе с данными. Идея была в создании внутреннего буфера данных (конечного) и в соответствующей корреляции читающих и пишующих потоков.
Короче lockfree, но чуть более эффективный.
Мне это казалось привлекательным, но когда стал обдумывать как запостить - обнаружилось что ничего конкретного/внятного сказать не могу
В самом деле, что мы хотим? Пусть напр первые 100 элементов контейнера "читаются" а следующие 100 "пишутся" - в принципе нет проблем но надо ставить локер на "какие 100". Др. случай - читающий может захватить данные надолго - напрашивается пусть он сделает копию и занимается с ней, а потом обновит как писатель. Словом, нет разумной постановки
Записан
CL0NE
Гость
Re: Неблокируемый список
«
Ответ #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
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...