|
|
Теория параллельных вычислений
Последнее сообщение 06-29-2008, 21:39 размещено vlubch. Ответов - 21.
-
vlubch
-
-
-
Присоединился 12-20-2007
-
-
Объявления 10
-
-
|
На: Теория параллельных вычислений
Читать Вы, видимо, умеете, но понимаете ли смысл прочитанного? Кроме того, с вежливостью у Вас явный пробел. Видимо, Вам нужно разнообразить круг чтения, чтобы как-то его компенсировать...
Но по делу... Из Ваших пояснений никак не следует, что Вы используете параллелизм. И это надо как-то показать уж коли Вы вошли в эту тему. И уж если Вы используете параллелизм, то что нового Вы внесли в него (в модель, в теорию), разрабатывая Ваши алгоритмы (для этого, кстати, не обязательно их открывать). Не дав ответы на эти вопросы, Вам, возможно, лучше переключиться с темы параллелизма на тему, прошу прощения, ... балета :)
|
|
| |
|
|
На: Теория параллельных вычислений
Хм… Господа, а давайте
немного умерим пыл?
Давайте не будем
скатываться до взаимных упреков и передергивания фраз друг друга. Насколько я
понял суть спора (а я имею некоторое отношение к программированию), у каждого
из вас есть чем гордиться. И каждый из вас решал задачи, так или иначе
связанные с параллельной обработкой данных. (Кстати, сам этот термин настолько
широк, что под ним можно понимать фактически что угодно). Мне перемножение
матриц представляется несколько более практически ценной задачей чем, триггеры.
Впрочем, триггеры, быть может, более ценны с точки зрения теории. Опять же, это
мое мнение и я могу ошибаться.
Хорошо это или
плохо, но архитектура современных компьютеров оказывает решающее влияние на
алгоритмы и их реализации. Таким образом, в рамках x86 архитектуры большинство разработчиков пытается
оптимизировать алгоритмы, параллельно с этим выводя математическое их
обоснование. Так я вижу ситуацию на рынке.
Мы (Интел)
пытаемся стимулировать все эти процессы. Например, вот тут есть конкурс (и российские
разработчики неплохо в нем себя проявили), где одной из задач изначально
планировалась перемножение матриц. Впоследствии эту задачку заменили, но не
суть.
Если вы считаете,
что та или иная задача имеет серьезное практическое значение для индустрии –
давайте подумаем, как можно предметно, аналитически, и на основании реальных данных
рассмотреть возможные варианты решения. И как обосновать их с точки зрения
теории.
Предлагаю идею –
выставляйте ваш лучший алгоритм, и мы попробуем организовать конкурс. Приз
достанется тому, кто предложит оптимальную реализацию на основании заранее
определенных критериев.
Что скажете?
Еще раз призываю обоих
не переходить на личности, и обсуждать балет где-нибудь в другом месте :))))) Удачи!
Дмитрий ОганезовIntel® Software Network
|
|
| |
-
YuriiSig
-
-
-
Присоединился 05-08-2008
-
-
Объявления 14
-
-
|
На: Теория параллельных вычислений
vlubch:Читать Вы, видимо, умеете, но понимаете ли смысл прочитанного? Кроме того, с вежливостью у Вас явный пробел. Видимо, Вам нужно разнообразить круг чтения, чтобы как-то его компенсировать... Но по делу... Из Ваших пояснений никак не следует, что Вы используете параллелизм. И это надо как-то показать уж коли Вы вошли в эту тему. И уж если Вы используете параллелизм, то что нового Вы внесли в него (в модель, в теорию), разрабатывая Ваши алгоритмы (для этого, кстати, не обязательно их открывать). Не дав ответы на эти вопросы, Вам, возможно, лучше переключиться с темы параллелизма на тему, прошу прощения, ... балета :)
Это вы не по адресу,- Вам необходимо обратиться к одному из братьев Брусиных : http://lib.mexmat.ru/forum/viewtopic.php?t=9648&postdays=0&postorder=asc&start=180
|
|
| |
-
YuriiSig
-
-
-
Присоединился 05-08-2008
-
-
Объявления 14
-
-
|
На: Теория параллельных вычислений
MAD\doganezo:
... Хорошо это или плохо, но архитектура современных компьютеров оказывает решающее влияние на алгоритмы и их реализации...
Мне к этому нечего добавить. Будь моя воля, разработчикам семейства процессоров Core присвоил бы Нобелевскую премию. Что касается моих результатов, то, например, на квадратных матрицах среднего размера скорость умножения на одном ядре составляет 94%, а на 4 ядрах - 90% от теоретически возможной (процессор q9450, IA32, т.е. скорость вплотную приблизилась к dgemm Intel MKL для EM64T). Максимальне скорости перемножения квадратных м-ц для q9450 на одном ядре: 96.2% для IA32 и 97.7% для EM64T.
|
|
| |
-
vlubch
-
-
-
Присоединился 12-20-2007
-
-
Объявления 10
-
-
|
На: Теория параллельных вычислений
Не думаю, что можно назвать «упреком» и «передергиванием» вопросы, связанные с желанием узнать, чем же обогатится параллельное программирование, познакомившись с предлагаемыми алгоритмами (?) умножения матриц. Поскольку пояснений не последовало, то, видимо, – ничем. Я ведь тема-то называется «Теория параллельных вычислений»…
Попытки «практической оценки» чреваты перекосами. Так уж сложилось, что, занимаясь параллельным программированием, мне не пришлось решать проблем перемножения матриц. Поэтому для меня их «практическая ценность» - нулевая. Но это не значит, что я умаляю их ценность. Мне бы хотелось в вопросе теории параллельного программирования услышать их теоретическую ценность. Если ее нет, то проблемы перемножения матриц нужно рассматривать в других «ветках» форума.
По поводу влияния архитектур. Как раз об этом и говорил Кнут. Я не вижу причин не соглашаться с ним. Современные «параллельные архитектуры» оказывают скорее негативное, чем позитивное влияние на современное параллельное программирование. Т.е. пока они просто «влияют» и, безусловно, сильно. Как – опять же сошлюсь на Кнута.
Я считаю, что проблема RS-триггера имеет весьма серьезное значение для теории и соответственно практики параллельного программирования. Не меньшее, чем, например, чем те же философы Дейкстры, стрелки Майхилла и аналогичные им задачи. И если уж совсем говорить прямо, то даже … большее. Почему? – об этом см. мои ссылки. Конкурс по параллельному программированию только выиграл бы от включения данной задачи в него. Несмотря на кажущуюся простоту задачи, ее, думаю, мало кто способен будет сейчас решить. Просто в силу пробелов в современной теории/теориях параллельного программирования.
И еще. Как ни странно, но термин «параллельное программирование» достаточно узок. Весьма «широким» его сделали современные «теории». Потому-то и понимать под ним нужно только то, что является именно параллельным – процессы, состоящие из множества параллельно функционирующих частей. Дальше «водоразделом» являются разные формальные параллельные модели этих процессов. И лишь затем – вопросы практической реализации данных моделей. Рассматриваемые при этом задачи должны демонстрировать те или иные стороны проблем параллельных вычислений. Вот в этом и есть их реальная «практическая ценность» для теории. И, конечно, практики, т.к. практика без теории – кустарщина. Кнут, правда, выбрал слова резче, но, думаю, своими опытом и работами по программированию он «завоевал» такое право – говорить прямо и открыто.
И, насколько я понимаю, Нобелевские премии дают за фундаментальные достижения, но не за пусть и прекрасные, но все же «узкие» практические достижения. Поэтому процессоры семейства Core путь и хороши «практически», но мне не известна их «теоретическая ценность» для параллельного программирования. Т.е. в этом смысле я бы давал Нобелевку за идею многопоточных вычислений, но никак не за практическую их реализацию. Но этого, к сожалению (к счастью – кому что), не будет (правда, всякое бывает), т.к. потоки и даже многоядерность - не модель вычислений. В пояснении этого утверждения сравните многопоточность и, к примеру, те же сети Петри. Так что – подождем (?) :)
|
|
| |
-
vlubch
-
-
-
Присоединился 12-20-2007
-
-
Объявления 10
-
-
|
На: Теория параллельных вычислений
Что-то обсуждение теории параллельных процессов встало… Будто все проблемы описания, анализа и проектирования программных параллельных систем решены?… :(
Приведу две цитаты из последнего (третьего) издания книги Гради Буча и др.
…«Проектировщик микросхем также должен рассматривать как динамические, так и статистические особенности системы. Для этого инженер-электронщик использует диаграммы, иллюстрирующие статистические связи между различными микросхемами, и временные диаграммы, отражающие изменение поведения этих элементов во времени. Затем для оценки корректности статистической и динамической моделей инженер может применить осциллограф или цифровой анализатор».
«Надежный метод проектирования основывается на прочном теоретическом фундаменте и предоставляет программисту известную степень свободы самовыражения.»
Почему я обращаю внимание на эти цитаты? По жизни сталкиваешься с тем, что программисты в подавляющем своем большинстве отвергают проблемы проектирования электронных схем, считая это не «царским делом». Собственно они в них не вникают и потому просто не понимают. Зря. Поскольку книга написана для программистов, то первая цитата прямо или косвенно подтверждает важность для рассмотрения/решения проблем программирования процессов, происходящих в электронных схемах. Вторая цитата несколько об ином - об острой необходимости «теоретического фундамента».
Эти две, как казалось бы разные проблемы тесно связаны между собой. Ведь, имея «фундамент», многие проблемы проектирования и анализа систем можно решить еще на первых этапах., т.е. если взять параллельные процессы, то, например, - предсказать (в терминологии «фундамента» - рассчитать) их поведение. А если рассматривать электронную схему, как пример параллельной системы, то еще до ее моделирования - «рассчитать ее поведение.
Если уж говорить о конкретной электронной схеме, то это RS-триггере. На его примере все убедительно можно показать.
Итак, вопросы к специалистам Intel:
1. Может ли, по их мнению, технология проектирования дискретных схем стать универсальной базой для проектирования параллельных систем (т.е. любых систем!)?
2. Что нужно понимать под «прочным теоретическим фундаментом» и может ли им быть опять же теория цифровых схем?
Если на заданные выше вопросы можно ответить положительно, то хотелось бы увидеть пример программного моделирования какой-нибудь электронной схемы. Могу предложить даже конкретную - это RS-триггер.
Эта схема, несмотря на кажущуюся простоту (только два элемента, но, правда, с перекрестными связями), весьма непроста для анализа и реализации. Уверенно могу даже утверждать, что мне не приходилось встречать книги, где бы он (RS-триггер) был бы рассмотрен верно. Это удивительно, но это факт. Поэтому, решив проблему RS-триггера, мы почти автоматически решим важные вопросы описания, анализа и реализации параллельных систем. Можете мне верить или нет, но это только так и не меньше. Такая моя категоричность в силу того, что все это проверено на «собственной шкуре». :)
|
|
| |
-
vlubch
-
-
-
Присоединился 12-20-2007
-
-
Объявления 10
-
-
|
На: Теория параллельных вычислений
На сайте Сергея Толкачева (Sergey Tolkachev) http://www.nnod.com/ в его книге "Нейронное программирование диалоговых систем" (там же см. и вариант на английском языке) на рис. 50 показан аналог RS-триггера, созданный в рамках нейронной модели.
Решение одних и тех же задач привлекает тем, что можно их сравнивать, отсекая сразу те решения (модели), которые выдают ошибочные результаты, а уж остальные можно рассматривать, сравнивая удобство описания, эффективность работы и реализации и т.д. и т.п.
Но… кто скажет: правильно ли будет работать «нейронный триггер» из книги? Или сама факт реализации модели в виде нейронной сети гарантирует ее правильность? Но, скорее всего, это не верный ответ на заданный вопрос :) Ответ можно получить, если формальная теория той или иной модели имеет соответствующие средства. Но из содержимого книги на вопрос о наличии такой теории ответ получить сложно.
Итак, позволяет ли теория нейронных сетей дать ответ о правильности «нейронного триггера»? Вопрос, может, риторический, но, может, кто знает на него ответ? В первую очередь он, безусловно, адресуется специалистам по нейронным сетям. Не заниматься же, в самом деле, обучением «нейронного триггера»? Хотя почему бы и нет? Но тогда другой вопрос – а где взять правильные результаты работы триггера? Могу лишь сказать (предупредить), что далеко не каждый их может получить, исследуя работу реального RS-триггера…
?...
|
|
| |
Стр. 2 из 2(элементов - 22)
2
|
|