История ходит по кругу. Здравствуй, концепт 1980-х! :)

 
1 2 3 4 5 6 7
+
-
edit
 

Balancer

администратор
★★★★★
bashmak> Переходим, но очень медленно и неторопливо, а ведь симметричная многоядерность попроще

Проще. Но её не будет. Как ни крути, а будет море более-менее универсальных, но при этом весьма отличающихся ядер. Невыгодно всю графику считать на ЦПУ. Но также невыгодно, когда GPU простаивают без дела, ведь их можно нагрузить. Это только то, что уже сегодня. Завтра - больше. Уже ставятся физические сопроцессоры - ещё N ядер. Глядишь, вернёмся к траспьютерам ещё. А Сони делает ставку на бОльшее. Название Cell, скажем, откуда взялось? Да они собираются весь цифровой дом в один кластер связывать. Т.е. медиаплейер, игровые приставки, десктоп - всё будет в одном кластере.

Так что, как ни крутись, а симметричного программирования в будущем не видно :) У меня сейчас дома штук 50..70 ядер десятка-другого разновидностей. А считать всё приходится только на одном из них :)

bashmak> Это кто вам такое сказал? Есть куча вещей которые могут повысить производительность в сингл-тред приложениях. Тот же переход на фотоны в переспективе сулит многое.

Вот когда перейдём на фотоны - тогда поговорим. Сегодня же, сейчас - есть только путь наращивания числа ядер. Ну и использование того, что уже есть, но просто не используется.

bashmak> Мне, например, нравятся нетактируемые процессоры - там все ожидается намного приятнее в плане производительности, хотя значительно сложнее в плане разработки.

Где они? Где изделия на них? Хотя бы концепты? :)

bashmak> Если остановится на текущей производительности в однопоточных приложениях, то это тупик - алгоритмы на бесконечное число потоков не параллелизуются.

Зато прекрасно параллелизуются задачи. Чтобы смотреть HD-видео не нужно параллелить алгоритм. Достаточно считать цепочки кадров в разных процессах.

bashmak> Зы. Да даже в случае развития не симметричной многоядерности АМДшный подход выглядит более превлекательным, по сравнению с Селловским.

Ну так и на Cell дело не остановится. Это уже устаревющий процессор. Динозавр в рамках современных темпов развития :D
 
+
-
edit
 

Balancer

администратор
★★★★★
HolyBoy> Каким образом на приставках играть во всякие MMORPG?

Джойстиком и/или мышкой :)

HolyBoy> Они разные и с разными способами управления.

А кто тебе сказал, что на приставках MMORPG - такие же, как на PC? Точнее, есть такие же (тот же Two Worlds), есть свои, которых на ПК нету.

HolyBoy> В некоторых из них требуется использовать кучу кнопок, скажем в ВоВ я для управления персонажем использую порядка 30 кнопок.

Ну а у меня, скажем, совершенно неприставочный джойпад имеет 14 кнопок и два джойстика, каждый из которых тоже может выступать как 4 кнопки. Итого - до 22 кнопок :D При чём - намного удобнее клавиатуры, всё под рукой.

Только я не понимаю, зачем в WoW столько кнопок? WASD + мышь + быстрый выбор. Остальное - мелочи, до которых и в меню добраться можно.

Кроме того, ты не учитываешь, что на приставках вовсю используются методы управления, не используемые сегодня на PC - всякие гироскопические и инерционные. Особенно тут преуспела Wii. На джойстике приходится ремешок приделывать, а то были уже случаи, когда разгорячённый народ, размахавшись руками, упустив джойстик заезжал кому-нибудь в лоб сразмаху :)

Кстати, в WoW народ, вот, пытается уже с джойстиками от Xbox играть: Боевой народ : Новости : Xbox 360 контроллер для World of Warcraft

HolyBoy> Кроме того, каким образом чатиться? Значит, нужна клавиатура.

Ы! Даже на ПС нормальные люди давно уже чатятся голосом :D

HolyBoy> Решены ли эти проблемы или надо специальные ММОРПГ делать, которые под консоль заточены?

Да. Выбор MMORPG под приставки есть. Выбор пока ещё меньше, чем под PC, но тут дело в том, что вышло только первое поколение приставок, расчитанных на постоянный онлайн. Под десяток тайтлов для Xbox и с полудюжину - для PS3. Может, и больше, просто этим вопросом не интересовался :)
 
+
-
edit
 

pokos

аксакал

Balancer> ...Сейчас же - уже несколько лет, как мало того, что в 3..4ГГц уткнулись, так, более того, назад откатились :)
Не надо проблемы отдельно взятой конторы со своей мамонтообразной архитектурой переносить на индустрию в целом. Рост частот идёт отлично. На других платформах.
 
+
-
edit
 

Balancer

администратор
★★★★★
pokos> Не надо проблемы отдельно взятой конторы со своей мамонтообразной архитектурой переносить на индустрию в целом. Рост частот идёт отлично. На других платформах.

На каких? Знаю, у IBM есть концепт на 10ГГц. Но они, похоже, на него забили. А так - что у нас имеется?

Intel - 4.5ГГц
AMD - 3(?)ГГц
IBM - 4.2ГГц
VIA - едва за 1ГГц, НЯЗ.
SUN - 3ГГц
Многочисленная армия ARM'ов - едва за 1ГГц перевалила.
Motorola, MIPS, TI - это вообще, считай, с рынка выбыли.

Это всё - x86, что ли? :D

Кого я ещё забыл?

В общем, если есть примеры ЦП, пригодных на роль бытовых, с частотами хотя бы за 6ГГц - то названия и частоты в студию.
 
+
-
edit
 

Wyvern-2

координатор
★★★★★
С частотой таки принципиальный затор Дело в длинне проводников - что бы схема адекватно работала, длинна проводника должна быть минимум (в теории) в 2 раза, а лучше (на практике) в 10 раз короче длинны волны на данной частоте Т.е. для частоты в 3ГГц длина проводника между элементами должна быть максимум 10-12мм...и что делать будем на чипе с площадью в сотни кв.мм? Как сигнал разводить? До определенного предела можно попытаться компоновать. А при 10ГГц? Поэтому и появляются процессоры у которых отдельные устройства конвееров работают на 3-4ГГц, а сам проц - еле-еле на 1ГГц

Ник
Жизнь коротка, путь искусства долог, удобный случай мимолетен, опыт обманчив.... Ἱπποκράτης  
+
-
edit
 

Balancer

администратор
★★★★★
Кстати, смех смехом, а я на практике с волновым ограничениями впервые столкнулся на... Орион-128, работающем с процессором на 2.5МГц :) В первой версии платы этого компа длиннющая, во всю плату, сантиметров в 20 длиной линия шины данных уходила вбок под 90 градусов. Получалась лесенка дорожек, которая при определённых частотах начинала так фонить отражённым сигналом, что начинали срабатывать уровни :) Вылечилось переразводкой платы так, чтобы дорожка попорачивала два раза под 45⁰. Там этот эффект исчез. Хорошо, что я старую плату купить не успел :)
 
+
-
edit
 

Mishka

модератор
★★★
bashmak> Ну, сложилось такое впечатление из ваших агиток.

Везде подчёркивалось, что писать надо специально. Да и с SSE просто перекомпилить не получится. Вот просто использовать SSE — да перекомпилить, а использовать на полный параллелизм — шишь. Поэтому у многих продуктов, которые требуют больших вычислительных мощностей, даже бинарники разные поставляются — для разных архитектур.

bashmak> Переходим, но очень медленно и неторопливо, а ведь симметричная многоядерность попроще

Ага, как же. Как давно многоядерники появились? Просто ОС давно готовы были. Да и народ стал писать местами. А вот то, что симметричная многоядерность попроще — тут я готов спорить. Если для человека очевидно, когда разные части алгоритма надо распараллеливать (ввод-вывод, обработка результатов и GUI) для разных спец процов, то просто преобразовать обычный алгоритм так, чтобы он использовал преимущества SMP — тут надо стараться.

bashmak> Это кто вам такое сказал? Есть куча вещей которые могут повысить производительность в сингл-тред приложениях. Тот же переход на фотоны в переспективе сулит многое.

Посмотрим. :)

bashmak> Мне, например, нравятся нетактируемые процессоры - там все ожидается намного приятнее в плане производительности, хотя значительно сложнее в плане разработки.

Там и программирование станет сложнее.

bashmak> Если остановится на текущей производительности в однопоточных приложениях, то это тупик - алгоритмы на бесконечное число потоков не параллелизуются.

Есть такие, которые и делятся на много потоков.

bashmak> Зы. Да даже в случае развития не симметричной многоядерности АМДшный подход выглядит более превлекательным, по сравнению с Селловским.

Это какой?
 
MD Wyvern-2 #01.04.2008 15:35  @Balancer#01.04.2008 15:09
+
-
edit
 

Wyvern-2

координатор
★★★★★
Balancer> Кстати, смех смехом, а я на практике с волновым ограничениями впервые столкнулся на...

Читал где то, что в настоящий момент главный и основной фактор влияющий на проектирование больших высокочастотных чипов - как раз волновые ограничения в соединяющих проводниках - именно они определяют компоновку и разводку схемы.

Ник
Жизнь коротка, путь искусства долог, удобный случай мимолетен, опыт обманчив.... Ἱπποκράτης  
+
-
edit
 

HolyBoy

аксакал

Balancer> Джойстиком и/или мышкой :)

Ну, если мышки есть, то ладно, живем еще.

Balancer> Ну а у меня, скажем, совершенно неприставочный джойпад имеет 14 кнопок и два джойстика, каждый из которых тоже может выступать как 4 кнопки. Итого - до 22 кнопок :D При чём - намного удобнее клавиатуры, всё под рукой.

Джойстик, как кнопка - не знаю, не пробовал.

Balancer> Только я не понимаю, зачем в WoW столько кнопок? WASD + мышь + быстрый выбор. Остальное - мелочи, до которых и в меню добраться можно.

Выбор мышью - несерьезно. У меня столько скиллов одновременно работают, что используются все кнопки вокруг WSAD, в т.ч. и Tab и CapsLock. Все равно не хватает пальцев и места под всё нужное. Часть скиллов висит на мышиных кнопках.

Balancer> Кроме того, ты не учитываешь, что на приставках вовсю используются методы управления, не используемые сегодня на PC - всякие гироскопические и инерционные. Особенно тут преуспела Wii. На джойстике приходится ремешок приделывать, а то были уже случаи, когда разгорячённый народ, размахавшись руками, упустив джойстик заезжал кому-нибудь в лоб сразмаху :)

У меня приставки до сих пор ассоциируются с чем то вроде МК на сеге или чего-то МКподобного на ПС1 (вроде). Поэтому не удивлен всем этим новомодным джойстикам.

Balancer> Кстати, в WoW народ, вот, пытается уже с джойстиками от Xbox играть: Боевой народ : Новости : Xbox 360 контроллер для World of Warcraft

Не вижу, каким образом это может быть удобным. Судя по фотке, этот джойстик напоминает мне джойстик от ПС1. Не впечатляет.

Balancer> Ы! Даже на ПС нормальные люди давно уже чатятся голосом :D

Увы и ах. Повседневно до сих пор используется обычный чат. Голосом общаются только на клановых мероприятиях, там это действительно очень удобно. А если я с какими-то левыми иду в группе, то нафиг мне их голоса? Я лучше музыку послушаю.
Кроме того, все еще голосовые чаты в играх убоги. В ВоВ есть, но никто/мало кто им пользуется. В Ла2 его нет. В Дябло и прочих играх нет. В стратегиях нет.
Для общения голосом пользуются сторонними программами: Тимспиком или Вентрилой. Вторая качественней болтает.

Balancer> Да. Выбор MMORPG под приставки есть. Выбор пока ещё меньше, чем под PC, но тут дело в том, что вышло только первое поколение приставок, расчитанных на постоянный онлайн. Под десяток тайтлов для Xbox и с полудюжину - для PS3. Может, и больше, просто этим вопросом не интересовался :)

Ну как будет, так и посмотрим.
 
+
-
edit
 

bashmak

аксакал

Mishka> Ага, как же. Как давно многоядерники появились?
Фактически давно. Народ с многопроцессорными конфигурациями и с кластерами работал очень давно. Но параллельных алгоритмов по прежнему не так и много.
Mishka>Просто ОС давно готовы были. Да и народ стал писать местами.
Вот именно что местами. Многоядерность общедоступна, а пишут - местами.
Mishka>А вот то, что симметричная многоядерность попроще — тут я готов спорить.
Во многих алгоритмах данные либо на начальном, либо на каком-то промежуточном этапе оказываются развязанными. Такие вещи на симметричной многоядерности програмируются влет. Все остальное - намного сложнее.
Mishka>Если для человека очевидно, когда разные части алгоритма надо распараллеливать (ввод-вывод, обработка результатов и GUI) для разных спец процов, то просто преобразовать обычный алгоритм так, чтобы он использовал преимущества SMP — тут надо стараться.
Вот именно. Если посмотреть, какого уровня програмист нужен(обычный кодер для этого не подойдет) и сколько он потратит на это времени, то встает вопрос - а нафига это надо - обычным образом написать программу и посчитать будет быстрее и дешевле.
bashmak>> Мне, например, нравятся нетактируемые процессоры - там все ожидается намного приятнее в плане производительности, хотя значительно сложнее в плане разработки.
Mishka> Там и программирование станет сложнее.
Да, но в отличае от параллельного програмирования там нет "теоретических" ограничений. И вполне возможно прийти к вещам, как сейчас.
bashmak>> Если остановится на текущей производительности в однопоточных приложениях, то это тупик - алгоритмы на бесконечное число потоков не параллелизуются.
Mishka> Есть такие, которые и делятся на много потоков.
Ну и сколько их таких - двух рук хватит, или одной достаточно?
bashmak>> Зы. Да даже в случае развития не симметричной многоядерности АМДшный подход выглядит более превлекательным, по сравнению с Селловским.
Mishka> Это какой?
Унификация по сокету - захотел, еще один обычный процессор воткнул, захотел специализированный, в зависимости от типичных задач. А не пытаться впихнуть невпихуемое в навеки спаяные обрубки.
 
+
-
edit
 

Balancer

администратор
★★★★★
HolyBoy> Ну, если мышки есть, то ладно, живем еще.

Там, вообще-то, нормальные USB. И клавы подцепляются, и мыши. Хотя в играх, как раз, их обычно не используют. Народ изначально к другому привыкши. На PC, вон, потом мышью с клавой играть не могут, неудобно им :)

HolyBoy> Джойстик, как кнопка - не знаю, не пробовал.

А я, вот, в Linux в этом режиме его как пульт ДУ использую. Удобно, 9 метров по радио - это сильно лучше, чем 7 метров по ИК с обычного пульта :)

HolyBoy> Не вижу, каким образом это может быть удобным.

А вот народу - наоборот, обычные средства управления неудобны. Дело привычки.

HolyBoy> Кроме того, все еще голосовые чаты в играх убоги. В ВоВ есть, но никто/мало кто им пользуется. В Ла2 его нет.

Ы. А кто заставляет искать встроенные в игру средства? Вот как раз в Ла2 народ вовсю у меня и чатился. В последний год существования сервера чат-активность упала вообще почти до нуля :) Первый опыт регулярный общения голосом в сетевых играх в Москве восходит чуть ли не к 1999-му году :) Ещё на модемах умудрялись.
 
+
-
edit
 

Balancer

администратор
★★★★★
bashmak> Унификация по сокету

Это у AMD-то унификация по сокету??? :D
 
+
-
edit
 

HolyBoy

аксакал

Balancer> Ы. А кто заставляет искать встроенные в игру средства? Вот как раз в Ла2 народ вовсю у меня и чатился. В последний год существования сервера чат-активность упала вообще почти до нуля :) Первый опыт регулярный общения голосом в сетевых играх в Москве восходит чуть ли не к 1999-му году :) Ещё на модемах умудрялись.

Ром, ну что тут непонятного? Если пользоваться не стандартным внутриигровым голосовым чатом, то для общения с людьми, которые не знают данных твоего войсчат-сервера клавиатура - это единственный способ. К тому же, для того чтобы вообще эти данные дать, нужна... опять клавиатура. :)

По поводу мыши-клавиатуры.
Я не ставлю под сомнение, что во всякие ГТА-МК-подобные игры удобно играть с геймпадом, но во что-то, навроде ВоВ. Нет. Мышь+клава - наше фсе! :F
 
US Сергей-4030 #01.04.2008 22:33  @HolyBoy#01.04.2008 16:40
+
-
edit
 

Сергей-4030

исключающий третье
★★
Balancer>> Джойстиком и/или мышкой :)
HolyBoy> Ну, если мышки есть, то ладно, живем еще.

Фигня какая-то. :( Уж с чем с чем, а с устройствами ввода проблем нет. У меня PS3 принимает все USB железо, которое у меня есть - клавиатуры, мышки, джойстики. Правда, не все программы хотят с этим железом работать, но сама приставка их понимает без проблем совершенно.
 
+
-
edit
 

bashmak

аксакал

bashmak>> Унификация по сокету
Balancer> Это у AMD-то унификация по сокету??? :D
Ну а что такое Torrenza тогда?
 
+
-
edit
 

Mishka

модератор
★★★
bashmak> Фактически давно. Народ с многопроцессорными конфигурациями и с кластерами работал очень давно. Но параллельных алгоритмов по прежнему не так и много.

Не, не очень. Многопроцессорные станции — те да, давно. SMP архитектура избретение Sequenta — посмотри, когда он появился. :) А вот всякие SIMD, MIMD — очень давно. У IBM в 1954 году, ЕМНИП. Но доступны они были не всем. Как на них программировать в параллель впервые понятно стало с выходом работы Тони Хоара "Взаимодействие слабосвязанных параллельных процессов" (на русский язык переведана Аней Бульонковой :) ). Тони занялся этим делом по заветам Дийкстры. Тот начал заниматься где-то в районе 1968 года. Во всяком случае, его знаменитый доклад на школе НАТО во Франции именно от 1968 года (про алгоритм банкиров).

bashmak> Вот именно что местами. Многоядерность общедоступна, а пишут - местами.

Она не общедоступна. Это враки. Это всё равно как сказать, что топология и алгебры Ли доступны физикам уже много десятков лет, а они, паршивцы этакие, в этих областях математики — ни духом, ни рылом. Кроме некоторых. :) Тут нужно специальное обучение. И мышление. Другая парадигма. Вот народ тут издевался над тем, как люди пытаются писать на VHDL-е или Verilog-е-- это как раз оттуда. :P

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

Ага, только это малая толика параллелизма. Очень часто сам алгоритм может быть разложен на параллельные составляющие. Практически любая матричная операция в итеративных действиях может быть разложена в SSE3 набор. Например перемножение двух матриц — попробуй запиши.

bashmak> Вот именно. Если посмотреть, какого уровня програмист нужен(обычный кодер для этого не подойдет) и сколько он потратит на это времени, то встает вопрос - а нафига это надо - обычным образом написать программу и посчитать будет быстрее и дешевле.

Это когда как. В куче вещей, однажды написанная программа (таже функция в обобщённом виде для перемножения матриц) может потом использоваться везде.


bashmak> Да, но в отличае от параллельного програмирования там нет "теоретических" ограничений. И вполне возможно прийти к вещам, как сейчас.

Что значит нет теоритических ограничений? У тебя будет всё такое же — либо фоннеймановское последовательное выполнение, либо параллельное, либо чисто квантовое. Для последнего можешь попробовать написать программку. :P

bashmak> Ну и сколько их таких - двух рук хватит, или одной достаточно?

Целые классы. :) Бесконечно большие. И как ни странно, физики их очень любят. :P

bashmak> Унификация по сокету - захотел, еще один обычный процессор воткнул, захотел специализированный, в зависимости от типичных задач. А не пытаться впихнуть невпихуемое в навеки спаяные обрубки.

Только надо придумать, как взаимодействия между ними описывать. Иначе шина станет узким местом.
 
+
-
edit
 

bashmak

аксакал

bashmak>> Фактически давно. Народ с многопроцессорными конфигурациями и с кластерами работал очень давно.
Mishka> Не, не очень.
60-e - это очень давно - прошлый век ;)
bashmak>> Вот именно что местами. Многоядерность общедоступна, а пишут - местами.
Mishka> Она не общедоступна. Это враки.
Сколько на текущий момент продано многоядерных процессоров? Вполне можно сказать, что общедоступа.
Mishka> Это всё равно как сказать, что топология и алгебры Ли доступны физикам уже много десятков лет, а они, паршивцы этакие, в этих областях математики — ни духом, ни рылом.
Прошли и забыли как страшный сон, поскольку во многих областях - на фиг не нужны, тем более экспериментаторам, ну быть может за исключением твердотельщиков.
bashmak>> Во многих алгоритмах данные либо на начальном, либо на каком-то промежуточном этапе оказываются развязанными. Такие вещи на симметричной многоядерности програмируются влет. Все остальное - намного сложнее.
Mishka> Ага, только это малая толика параллелизма.
Не такая уж и маленькая и самая простая в имплементации, по крайней мере есть шанс, что такие вещи вполне может отлавливать компиллятор.
Mishka>Очень часто сам алгоритм может быть разложен на параллельные составляющие. Практически любая матричная операция в итеративных действиях может быть разложена в SSE3 набор.
Это много сложнее и требует переписывания алгоритма, а потом еще и доказательства идентичности результатов нового алгоритма.
Mishka>Например перемножение двух матриц — попробуй запиши.
В любимом тобой примере перемножения матриц на Селл, есть охрененная зависимость времени от размеров - если размерм матрицы не пропорционален Х, то время выполнения намного больше. Алгоритм получается очень узкозаточеным. А в общем случае получается медленнее.
bashmak>> Вот именно. Если посмотреть, какого уровня програмист нужен(обычный кодер для этого не подойдет) и сколько он потратит на это времени, то встает вопрос - а нафига это надо - обычным образом написать программу и посчитать будет быстрее и дешевле.
Mishka> Это когда как. В куче вещей, однажды написанная программа (таже функция в обобщённом виде для перемножения матриц) может потом использоваться везде.
Вариант с библиотеками имеет место быть, только вот будут возникать коллизии - нельзя одновременно вызывать функцию "а" и "б", а вот "а" и "с" - можно... Программирование превращается в танцы с бубном, по типу описаной здесь "истории одного байта".
bashmak>> Да, но в отличае от параллельного програмирования там нет "теоретических" ограничений. И вполне возможно прийти к вещам, как сейчас.
Mishka> Что значит нет теоритических ограничений? У тебя будет всё такое же — либо фоннеймановское последовательное выполнение, либо параллельное, либо чисто квантовое. Для последнего можешь попробовать написать программку. :P
Именно фоннеймановское последовательное, но в другой реализации, где не надо тактование, соответсвенно переход от одного техпроцесса к другому - не проблема как и время выполнения команды, да и размер микросхем потенциально меньше. Само-собой потом это можно связать в параллельные ядра. А для квантового алгоритма и программу писать не надо - она меня окружает - природа завется :P
bashmak>> Ну и сколько их таких - двух рук хватит, или одной достаточно?
Mishka> Целые классы. :) Бесконечно большие. И как ни странно, физики их очень любят. :P
Ну так сколько их таких классов? А то все народ жалится, что как что приближенное к реальности, то задача сильносвязана и сразу труба - все упирается в однозадачную производительность: маракуй не маракуй все равно получишь...
bashmak>> Унификация по сокету - захотел, еще один обычный процессор воткнул, захотел специализированный, в зависимости от типичных задач. А не пытаться впихнуть невпихуемое в навеки спаяные обрубки.
Mishka> Только надо придумать, как взаимодействия между ними описывать. Иначе шина станет узким местом.
Ну они это не завтра выпускают и не для самого общего случая - придумают что-нибудь.
 
+
-
edit
 

Mishka

модератор
★★★
bashmak> 60-e - это очень давно - прошлый век ;)

Я бы сказал, прошлое тысячелетие. :)

bashmak> Сколько на текущий момент продано многоядерных процессоров? Вполне можно сказать, что общедоступа.

Вот меня интересует, почему же не все ещё могут программировать, и не все ещё знают теорию Риса-Шаудера. Она же общедоступна. Знаешь сколько книжек вышло? :P

bashmak> Прошли и забыли как страшный сон, поскольку во многих областях - на фиг не нужны, тем более экспериментаторам, ну быть может за исключением твердотельщиков.

А алгебры Ли, боюсь, что физики и не проходят. И с топологией напряжёнка. :) Физики жалуются, что им не хватает времени своё изучить. А тут ещё математику заставляют. Людей уровня Улама практически нет. Физики его своим считают. Математики — своим. :) А ведь всё общедоступно. :)

bashmak> Не такая уж и маленькая и самая простая в имплементации, по крайней мере есть шанс, что такие вещи вполне может отлавливать компиллятор.

Она самоочевидная. Но не самая выгодная часто. Поэтому я и говорю, что программирование параллельное для разнородных процев часто проще — видны границы.

bashmak> Это много сложнее и требует переписывания алгоритма, а потом еще и доказательства идентичности результатов нового алгоритма.

Я бы сказал, переписывания конкретной имплементации. А идентичность следует из законов дистрибутивности, симметричности — как раз то, что определяет поле. :P Смотри. Вместо того, чтобы вычислять каждый элемент матрицы по формуле можно посчитать произведения для всех элементов, скажем, столбца, положив результаты в память — одной командой SSE3, а потом проссумировав их и положив результаты в уже нужное место другой командой SSE3, Т.е., грубо говоря — две команды на столбец. Если размерность больше размерности вектороно регистра, то можно делать по блокам. А теперь оцени, во сколько раз это будет быстрее, чем поочередно умножать. Если я правильно помню, то в SSE3 можно выдавать до 32 одновременных операндов для одной операции (здесь могу врать — там от размерности зависит).

bashmak> В любимом тобой примере перемножения матриц на Селл, есть охрененная зависимость времени от размеров - если размерм матрицы не пропорционален Х, то время выполнения намного больше. Алгоритм получается очень узкозаточеным. А в общем случае получается медленнее.

Не-а. Просто искусство писать общие алгоритмы (generic programming) — это отдельное искусство, недоступное даже многим высококвалифицированным программистам. А тут ещё и с уклоном в параллелизм. :) Ты думаешь, что много численных методов используешь в своей деятельности?

bashmak> Вариант с библиотеками имеет место быть, только вот будут возникать коллизии - нельзя одновременно вызывать функцию "а" и "б", а вот "а" и "с" - можно... Программирование превращается в танцы с бубном, по типу описаной здесь "истории одного байта".

Программирование всегда танцы с бубном. Это дилетанты думают, что всё просто. :) Особенно в параллелизме. Там всегда есть такая опасность. Но для её разрешения придуманы разные механизмы — называется синхронизация и управление доступом к общим рессурсам — всякие семафоры, события, рандеву, мониторные скобки, сообщения.

bashmak> Именно фоннеймановское последовательное, но в другой реализации, где не надо тактование, соответсвенно переход от одного техпроцесса к другому - не проблема как и время выполнения команды, да и размер микросхем потенциально меньше. Само-собой потом это можно связать в параллельные ядра. А для квантового алгоритма и программу писать не надо - она меня окружает - природа завется :P

Если фоннемановское, то как время выполнения команды не важно? Всё выполняется мгновенно? С точки зрения программирования что поменяется? Да нифига.

bashmak> Ну так сколько их таких классов? А то все народ жалится, что как что приближенное к реальности, то задача сильносвязана и сразу труба - все упирается в однозадачную производительность: маракуй не маракуй все равно получишь...

Думаю, что счётное количество. :) У тебя задача сильносвязана, но куски её могут быть распараллелены. В этом и искусство. Скажем, как можно использовать SSE для зануления? А все регистры обнулить, а потом одной командой собачить в область. Один удар и 256 (или сколько там) байтов в 0. :P А можно честно цикл написать.

bashmak> bashmak>> Унификация по сокету - захотел, еще один обычный процессор воткнул, захотел bashmak> Ну они это не завтра выпускают и не для самого общего случая - придумают что-нибудь.

Опыт развития сокетов до — не внушает большого оптимизма.
 
+
-
edit
 

bashmak

аксакал

bashmak>> Сколько на текущий момент продано многоядерных процессоров? Вполне можно сказать, что общедоступа.
Mishka> Вот меня интересует, почему же не все ещё могут программировать, и не все ещё знают теорию Риса-Шаудера. Она же общедоступна. Знаешь сколько книжек вышло? :P
Не, ты не о том. Если раньше програмисты говорили - нафиг нам параллельное програмирование, все равно его мало где употребить можно, то теперь они так сказать не могут - не канает отмазка :P
bashmak>> Прошли и забыли как страшный сон, поскольку во многих областях - на фиг не нужны, тем более экспериментаторам, ну быть может за исключением твердотельщиков.
Mishka> А алгебры Ли, боюсь, что физики и не проходят. И с топологией напряжёнка. :)
И то и другое было. В "частицах" алгебры Ли практически всегда проходят - мультиплеты, классификации...
Mishka>Физики жалуются, что им не хватает времени своё изучить. А тут ещё математику заставляют.
От именно.
bashmak>> Это много сложнее и требует переписывания алгоритма, а потом еще и доказательства идентичности результатов нового алгоритма.
Mishka> Я бы сказал, переписывания конкретной имплементации.
Угу, и не наделать при этом ошибок.
bashmak>> В любимом тобой примере перемножения матриц на Селл, есть охрененная зависимость времени от размеров - если размерм матрицы не пропорционален Х, то время выполнения намного больше. Алгоритм получается очень узкозаточеным. А в общем случае получается медленнее.
Mishka> Не-а. Просто искусство писать общие алгоритмы (generic programming) — это отдельное искусство, недоступное даже многим высококвалифицированным программистам. А тут ещё и с уклоном в параллелизм. :)
Нам много не надо.
Mishka>Ты думаешь, что много численных методов используешь в своей деятельности?
Очень мало - я же экспериментатор.
bashmak>> Именно фоннеймановское последовательное, но в другой реализации, где не надо тактование, соответсвенно переход от одного техпроцесса к другому - не проблема как и время выполнения команды, да и размер микросхем потенциально меньше.
Mishka> Если фоннемановское, то как время выполнения команды не важно? Всё выполняется мгновенно?
Не мгновенно, но синхронизация не требуется, а поскольку все построено на обратных связях время прохождения конкретной комманды неважно.
Mishka>С точки зрения программирования что поменяется? Да нифига.
С точки зрения програмирования - нифига, а с точки зрения скорости и размера процессора, а так же его энергопотребления - многое.
 
+
-
edit
 

Murkt

Pythoneer

Balancer> Так и приставки есть ломаные. Вообще, повторюсь, я не знаю, как у вас в Киеве, вполне может быть, что как в Москве лет 5 назад. Тогда о приставках тут тоже только ненормальные думали. Но за это время ситуация очень изменилась.
У меня полно знакомых, которые играют на приставках. В Киеве, да.
[team Їжачки - сумні падлюки]  
+
-
edit
 

Murkt

Pythoneer

Balancer> Правда, не знаю, как с мультиядерностью дела у Эрланга обстоят. Вот с мультикомпьютерностью - отлично :)
Насколько я знаю, никак. Одна нода - одно ядро. Хочешь использовать восемь ядер - запускай восемь нод. И Эрланг не умеет и никогда не будет уметь параллелить то, что написано для работы в одном процессе. У него строго фиксирован порядок выполнения команд - как написано, в таком порядке и будет работать.

Mishka>> Ну и с функциональными языками тоже не всё так просто. Потому как хочется взять произвольную программку и запараллелить её по самые гагашары. :)
Balancer> Я же и сказал - в теории.
Balancer> Чисто теоретически, ФП позволяет считать без side-effects и с произвольным порядком вычислений функций. Т.е. грузим это ядро работать с такими-то вычислениями, это - с такими-то, потом результаты сводятся на третьем ядре и т.д.
Balancer> На практике, конечно, в мэйнстрим-ФП такого пока нигде нет, насколько я знаю.
В Хаскелле вполне может быть что-то подобное. То есть сам язык, его конструкция действительно позволяют такое сделать, но реализовано это или нет - я не уверен. Скорее всего нет. Но я даже не гуглил на эту тему.
[team Їжачки - сумні падлюки]  
+
-
edit
 

Mishka

модератор
★★★
Как только есть оператор присваивания, так сразу есть побочный эффект. :) Алгол 68 был разработан так, что оператор присванивания был единственным таковым во всём языке. Поэтому на Алголе можно было запросто писать в функциональном стиле. :) Чем многие и пользовались. А побочный эффект не всегда так явно выражен. Например, можно не напрямую менять, в памяти, а запросить вычисление индекса, а потом по этому индексу и заменить значение. Поскольку вычисление адреса произошло неизвестно где, а изменение сейчас.
 
+
-
edit
 

Wyvern-2

координатор
★★★★★
Слышал, что в очень сильно параллельных :) системах применяют также спекулятивные методы распараллеливания. Когда процессоров очень много просто на обсчет запускаются все или почти все или просто много :) вероятных ветвей - а в конце выбирается правильная. Такой метод очень громоздок, но позволяет ускорять выполнение даже тех алгоритмов, которые принципиально не распараллеливаются.

Может дело в том, что нонешние параллельные системы не очень таки параллельные? ;)

Ник
Жизнь коротка, путь искусства долог, удобный случай мимолетен, опыт обманчив.... Ἱπποκράτης  
+
-
edit
 

Mishka

модератор
★★★
Ник, то, что ты описал — была мечта физиков много лет назад. :) Строят модельки, которые считают независимо. Только палцем в небо попадают не хуже, чем при обычном подходе. :) И для этого не нужны параллельные системы. Для этого нужны просто много машин никак не связанных с собой. :)
 
+
-
edit
 

Wyvern-2

координатор
★★★★★
Mishka> Ник, то, что ты описал — была мечта физиков много лет назад. :)
Ну, дык - а когда я последний раз физику то изучал? Мы ж с тобой чай не молодеем :F

Mishka> Для этого нужны просто много машин никак не связанных с собой. :)
Но если они таки будут связанны - ака параллельны - то это ведь не мешает ;)

Ник
Жизнь коротка, путь искусства долог, удобный случай мимолетен, опыт обманчив.... Ἱπποκράτης  
1 2 3 4 5 6 7

в начало страницы | новое
 
1965: Первый выход человека в открытый космос (53 года).
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru