Re[6]: Эрланг
От: remark Россия http://www.1024cores.net/
Дата: 23.09.09 19:12
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Любопытно , 8 секнд это конечно не 111 и я бы назвал такой результат удовлетворительным.


Но это только если запускать на одноядерной машине. Вероятность этого мала и уменьшается с каждым днём.

M>Вполне возмможно, что его можно улучшить хорошо поработав над реализацией.


Я честно говоря не знаю, можно ли там что-то существенно улучшить. Но я уверен, что над реализацией трудился не один человек, и что они определенно имели целью показать высокую производительность.


1024cores — all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re[5]: Хамелеоны быстрые и очень быстрые
От: Mr.Cat  
Дата: 23.09.09 22:40
Оценка:
Здравствуйте, remark, Вы писали:
R>Я думаю, что самый быстрый вариант будет реализовать хамелеонов в стиле легковесных потоков, и применить кооперативное планирование...
Я тут, кcтати, наборосал прототипчик оного для scheme (plt). Не выводит всякой сервисной информации по заданию, довольно криво обыгран момент смены цветов и нет случайности в шедулинге, но вот как-то так:
http://paste.lisp.org/+1VLE
Re[4]: Хамелеоны быстрые и очень быстрые
От: Sergey Chadov Россия  
Дата: 24.09.09 14:49
Оценка:
Здравствуйте, WolfHound, Вы писали:


WH>Ибо в реальных задачах такой дикой конкуренции за общий ресурс не встречается. Тк нормальные люди всеми силами стараются такого избежать.

Возражения непонятны. Модельная задача на то и модельная, что берет один аспект взаимодействия и доводит его до абсурда. Я вроде нигде и не утверждал, что система, плохо показавшая себя на этом тесте непригодна, я собственно отвечал на вопрос "много ли бывает ситуаций когда требуется паралелить задачи не требующие выч. ресурсов", на мой взгляд сотни потоков, ожидающие на IO — вполне пример такой ситуации. Да и кстати многие сугубо вычислительные задачи могут создавать подобные ситуации — например ресурсом, за который конкурируют, может оказаться память.
--
Sergey Chadov

... << RSDN@Home 1.2.0 alpha rev. 685>>
Re[5]: Хамелеоны быстрые и очень быстрые
От: WolfHound  
Дата: 24.09.09 16:34
Оценка:
Здравствуйте, Sergey Chadov, Вы писали:

SC>Возражения непонятны. Модельная задача на то и модельная, что берет один аспект взаимодействия и доводит его до абсурда. Я вроде нигде и не утверждал, что система, плохо показавшая себя на этом тесте непригодна,

Дело в том что как только появляются хоть какие то заметные вычисления или ожидание IO то все описанные remark'ом эффекты становятся не видимыми даже в микроскоп.

SC>я собственно отвечал на вопрос "много ли бывает ситуаций когда требуется паралелить задачи не требующие выч. ресурсов", на мой взгляд сотни потоков, ожидающие на IO — вполне пример такой ситуации.

Ни разу не такая.

SC>Да и кстати многие сугубо вычислительные задачи могут создавать подобные ситуации — например ресурсом, за который конкурируют, может оказаться память.

Назови хоть одну вычислительную задачу при грамотной реализации которой будет большая конкуренция при записи в память. Конкуренция на чтение не проблема.
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[6]: Хамелеоны быстрые и очень быстрые
От: Sergey Chadov Россия  
Дата: 24.09.09 16:56
Оценка:
Здравствуйте, WolfHound, Вы писали:


SC>>Возражения непонятны. Модельная задача на то и модельная, что берет один аспект взаимодействия и доводит его до абсурда. Я вроде нигде и не утверждал, что система, плохо показавшая себя на этом тесте непригодна,

WH>Дело в том что как только появляются хоть какие то заметные вычисления или ожидание IO то все описанные remark'ом эффекты становятся не видимыми даже в микроскоп.
Я еще раз говорю, мое сообщение относится к сообщению remark'а только косвенно, я отвечал на фразу "много ли бывает ситуаций когда требуется паралелить задачи не требующие выч. ресурсов"

SC>>Да и кстати многие сугубо вычислительные задачи могут создавать подобные ситуации — например ресурсом, за который конкурируют, может оказаться память.

WH>Назови хоть одну вычислительную задачу при грамотной реализации которой будет большая конкуренция при записи в память.
Нормальная реализация это я так понимаю такая, которая не создает большой нагрузки на память?
А если серьезно — разреженная линейная алгебра, какой-нибудь swarm intelligence и прочее, где потоков теоретически может быть много, но действия, которые выполняются каждым потоком — относительно простые. Стоит вспомнить, что вычислительные устройства тоже бывают разные.

WH> Конкуренция на чтение не проблема.

интересно, почему.
--
Sergey Chadov

... << RSDN@Home 1.2.0 alpha rev. 685>>
Re[7]: Хамелеоны быстрые и очень быстрые
От: WolfHound  
Дата: 24.09.09 17:24
Оценка:
Здравствуйте, Sergey Chadov, Вы писали:

SC>Я еще раз говорю, мое сообщение относится к сообщению remark'а только косвенно, я отвечал на фразу "много ли бывает ситуаций когда требуется паралелить задачи не требующие выч. ресурсов"

Вот я тебе и говорю что таких задач не бывает.
Ожидание IO это совершенно другая история.

SC>Нормальная реализация это я так понимаю такая, которая не создает большой нагрузки на память?

Это та которая сводит запись в одно и тоже место памяти и нескольких потоков к мнимому.

SC>А если серьезно — разреженная линейная алгебра, какой-нибудь swarm intelligence и прочее, где потоков теоретически может быть много, но действия, которые выполняются каждым потоком — относительно простые. Стоит вспомнить, что вычислительные устройства тоже бывают разные.

Все опять мимо. Этим задачам не нужно писать из нескольких потоков в одно место памяти.
А если объемы действительно большие то там вырисовывается кластер и алгоритмы типа map reduce
Если же появляется что-то на подобии сабжевой задачки то это значит что решение нихрена не масштабируется.

WH>> Конкуренция на чтение не проблема.

SC>интересно, почему.
По тому что если память только читают то одна и та же линейка кеша может лежать в кеше нескольких ядер.
А если появляется запись ядро должно захватить линейку кеша эксклюзивно.
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[8]: Хамелеоны быстрые и очень быстрые
От: Sergey Chadov Россия  
Дата: 24.09.09 17:53
Оценка:
Здравствуйте, WolfHound, Вы писали:

SC>>Нормальная реализация это я так понимаю такая, которая не создает большой нагрузки на память?

WH>Это та которая сводит запись в одно и тоже место памяти и нескольких потоков к мнимому.
Так кто бы спорил

SC>>А если серьезно — разреженная линейная алгебра, какой-нибудь swarm intelligence и прочее, где потоков теоретически может быть много, но действия, которые выполняются каждым потоком — относительно простые. Стоит вспомнить, что вычислительные устройства тоже бывают разные.

WH>Все опять мимо. Этим задачам не нужно писать из нескольких потоков в одно место памяти.
Зачем в одно, в разные, но например попадающие в одну линейку кэша. Или кэша вообще может не быть. Или все прекрасно, но шина не резиновая и из-за этого часть процессоров получает некислую задержку выполнения. В любом вычислительном устройстве рано или поздно что-то кончается, а это и есть ситуация конкуренции за ресурс.

WH>А если объемы действительно большие то там вырисовывается кластер и алгоритмы типа map reduce

WH>Если же появляется что-то на подобии сабжевой задачки то это значит что решение нихрена не масштабируется.
Да, значит, но не значит, что оно не существует.

WH>>> Конкуренция на чтение не проблема.

SC>>интересно, почему.
WH>По тому что если память только читают то одна и та же линейка кеша может лежать в кеше нескольких ядер.
WH>А если появляется запись ядро должно захватить линейку кеша эксклюзивно.
Верно только если все потоки читают ограниченный, хорошо распределенный по линейкам кэша набор адресов.
--
Sergey Chadov

... << RSDN@Home 1.2.0 alpha rev. 685>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.