Re[24]: Axum: паралельное программирование
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 17.05.09 20:48
Оценка:
Здравствуйте, thesz, Вы писали:

T>1) Откуда ты знаешь, что понимают в MS?

Все разработчики ведут блоги, есть записи на channel 9 обсуждений различных вещей.
Кроме того MS на начальном этапе развития новых идей создает community и прислушивается к его мнению.
Так что совсем не сложно узнать что понимают в MS.
Re[24]: Axum: паралельное программирование
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 17.05.09 20:50
Оценка:
Здравствуйте, thesz, Вы писали:

T>Вот, смотри. Лисп стал функциональным в районе 1983 года. Только Common Lisp устаканил алгоритм упрощения (reduction), который имел хоть какой-то аналог в лямбда-исчислении.

И что? У лиспа пиписька длиннее стала?

T>Вопрос: какой порядок упрощения в функциональном подмножестве C#?

Встречный вопрос: что это меняет?

Хоть форум и называется философией, но абстрактно-теоретические рассуждения мало кому нужны.
Re[26]: Axum: паралельное программирование
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 17.05.09 20:57
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Не думаю что Axum поможет при ускорении расчетов.


То же предлагаешь обсудить свои ощущения?

G> Для числомолотилки доожен быть прямолинейный код, который исполняется на всех доступных ядрах одновременно.


Это очень узкий подход к проблеме. Нет, совершенно необязательно прямолинейный. С прямолинейным и сейчас проблем нет. Проблемы начинаются когда он не совсем прямолинейный, или, скажем, плохо гранулируется. Вот тогда и вылазят всякие фьючерсы, континуэйшены и прочая асинхронная нечисть.
... << RSDN@Home 1.2.0 alpha 4 rev. 1218 on Windows Vista 6.1.7100.0>>
AVK Blog
Re[25]: Axum: паралельное программирование
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 17.05.09 20:57
Оценка:
Здравствуйте, eao197, Вы писали:

E>Существует мнение, что с приходом массовых multicode машин под HPC будут попадать даже такие утилиты, как IrfanView и ACDSee. Которые будут использовать 8-16 имеющихся в их распоряжении ядер даже для простейшей обработки 20-30 мегапиксельных фотографий.


Направление мысли правильное

E>В отличии от использования data-flow механизмов на агентах типа Axum-овских.


Вот вот.
... << RSDN@Home 1.2.0 alpha 4 rev. 1218 on Windows Vista 6.1.7100.0>>
AVK Blog
Re[32]: Axum: паралельное программирование
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 17.05.09 20:57
Оценка:
Здравствуйте, VoidEx, Вы писали:

VE>А где я требую отсутствие поддержки других стилей?


Ты? Без понятия. Но с предлагаемым подходом не только шарп не функциональный, но и F# с окамлом в ту же корзину, поскольку лямбду с побочными эффектами там, как два пальца об асфальт.

VE>Вот пока еррора нет, никакой функциональщины тоже нет.


Весьма спорно, но в контексте данного топика — непринципиально.
... << RSDN@Home 1.2.0 alpha 4 rev. 1218 on Windows Vista 6.1.7100.0>>
AVK Blog
Re[33]: Axum: паралельное программирование
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 17.05.09 20:57
Оценка:
Здравствуйте, VoidEx, Вы писали:

VE>Сказать, что C# функциональный


Я сказал, что шарп достаточно функционален. Для поддержки фьючерсов, PFX и прочей декларативной асинхронности.

VE>Однако это, очевидно, чушь.


Это совсем не очевидно.
... << RSDN@Home 1.2.0 alpha 4 rev. 1218 on Windows Vista 6.1.7100.0>>
AVK Blog
Re[28]: Axum: паралельное программирование
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 17.05.09 20:57
Оценка:
Здравствуйте, thesz, Вы писали:

T>Я привожу сравнение с Эрлангом, где всего для параллельного программирования больше.

Всего это чего? Паттерн-матчинга? А чем он параллельному программиррованию помогает?
А Erlang умеет прозрачно задействовать все ядра процессора и при этом не терять производительность?

T>>>, из чего следует, что это PR

AVK>>Из того что ты пытаешься следует? Отличная логика. И прекрасная демонстрация того, что это все таки вера.
T>"Что это PR" следует из минимальности нововведений в Axum.
Теперь осталось доказать "минимальности нововведений в Axum".
Для начала можешь привести критерий минимальности, а потом список нововведений в Axum.
Re[27]: Axum: паралельное программирование
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 17.05.09 21:03
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, gandjustas, Вы писали:


G>>Не думаю что Axum поможет при ускорении расчетов.

AVK>То же предлагаешь обсудить свои ощущения?
Тут видимо только этим и занимаются.

G>> Для числомолотилки доожен быть прямолинейный код, который исполняется на всех доступных ядрах одновременно.


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

Только суть от этого не меняется — надо нагрузить все ресурсы с миниммальным оверхедом.
Axum в этом не помощник, он как раз старается грузить минимум.
Re[30]: Axum: паралельное программирование
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 17.05.09 21:05
Оценка:
Здравствуйте, VoidEx, Вы писали:

VE>Здравствуйте, AndrewVK, Вы писали:


AVK>>Таким образом он не попадает под определение "исключительно функциональный". Я об этом с самого начала говорил. А по тому, что по ссылке — попадает.

VE>

VE>functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data

VE>Не can avoid, а avoids.
И сколько таких языков?
Какие из них были\есть mainstream?
Re[31]: Axum: паралельное программирование
От: VoidEx  
Дата: 17.05.09 21:06
Оценка: :)
Здравствуйте, gandjustas, Вы писали:

G>И сколько таких языков?

G>Какие из них были\есть mainstream?
Какая разница?
Re[28]: Axum: паралельное программирование
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 17.05.09 21:11
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Только суть от этого не меняется — надо нагрузить все ресурсы с миниммальным оверхедом.


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

G>Axum в этом не помощник, он как раз старается грузить минимум.


Думаю, ты ошибаешься все же.
... << RSDN@Home 1.2.0 alpha 4 rev. 1218 on Windows Vista 6.1.7100.0>>
AVK Blog
Re[28]: Axum: паралельное программирование
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 17.05.09 21:15
Оценка: +1
Здравствуйте, gandjustas, Вы писали:

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

G>Только суть от этого не меняется — надо нагрузить все ресурсы с миниммальным оверхедом.

Мимо. Задача не в том, чтобы нагрузить все ресурсы, а в том, чтобы получить максимальный эффект от распараллеливания (в идеале -- линейную масштабируемость). И здесь высокоуровневые механизмы (те же самые агенты) могут позволить разработчику достичь этой цели с меньшими трудозатратами.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[29]: Axum: паралельное программирование
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 17.05.09 21:16
Оценка: +1
Здравствуйте, eao197, Вы писали:

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

G>>Только суть от этого не меняется — надо нагрузить все ресурсы с миниммальным оверхедом.

E>Мимо. Задача не в том, чтобы нагрузить все ресурсы, а в том, чтобы получить максимальный эффект от распараллеливания (в идеале -- линейную масштабируемость). И здесь высокоуровневые механизмы (те же самые агенты) могут позволить разработчику достичь этой цели с меньшими трудозатратами.


Забыл добавить -- remark здесь несколько мегапостов написал на эту тему. Так что обращайстесь к первоисточнику


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[15]: Axum: паралельное программирование
От: vdimas Россия  
Дата: 17.05.09 21:25
Оценка: +1
Здравствуйте, eao197, Вы писали:

E>Вот, например, описание агента. Более-менее сложного.


Жень, тебе надо компилятор из некоего DSL в целевой С++ делать, а то как-то действительно "более-менее сложно" получается.
... << RSDN@Home 1.2.0 alpha rev. 786>>
Re[18]: Axum: паралельное программирование
От: vdimas Россия  
Дата: 17.05.09 21:25
Оценка:
Здравствуйте, Gaperton, Вы писали:

G>А вот мой подход на файберах в том же С++, который я реализовал лет 6 назад для CQG, позволяет обрабатывать тысячи нитей без каких-либо проблем синхронизации,


Система была реал-тайм?
Мне вот не удавалось заставить нормально работать "обобщенный планировщик" в асинхронной среде, явная диспетчеризация и на примитивах синхронизации экономит, и эффективнее в разы. Да, расплачиваемся автоматной моделью, но в том же .Net выручает yield как раз для таких случаев.
... << RSDN@Home 1.2.0 alpha rev. 786>>
Re[25]: Axum: паралельное программирование
От: Gaperton http://gaperton.livejournal.com
Дата: 17.05.09 21:51
Оценка:
Здравствуйте, eao197, Вы писали:

E>>>Стоит сменить предметную область с fault-tolerant systems на high perfomance computing и окажется, что практически все эти достоинства, в лучшем случае, окажутся мертвым грузом.


G>>Преимущества Эрланга имеют большое значение в любых серверных приложениях с требованием 24х7, которые работают не в пакетных (как high-performance computing), а в интерактивных сценариях.


E>Даже в области серверных приложений с требованиями 24x7 подход Erlang-а далеко не единственный.


Единственных подходов вообще не бывает. Их всегда пруд пруди. Я тебе сейчас не о подходе говорю, а о тех преимуществах, которые есть не подход, а свойства, и которые ты попытался отмести предыдущим постом.

А если говорить о твоем подходе в SObjectizer — он хуже по всем пунктам. Почему — я показал.

G>>High-performance computing — это настолько узкая и малораспространенная область, что сменить что-либо на нее будет очень затруднительно. И она достаточно уныла, чтобы не возникало такого желания.


E>Существует мнение, что с приходом массовых multicode машин под HPC будут попадать даже такие утилиты, как IrfanView и ACDSee.


Мнение можно иметь любое. Оно отличается тем, что его принципиально нельзя ни доказать, ни опровергнуть. Особенно если "мнение" относится к жонглированию терминами.

E>Которые будут использовать 8-16 имеющихся в их распоряжении ядер даже для простейшей обработки 20-30 мегапиксельных фотографий. Какой толк от Erlang-а во внутренностях IrfanView (с горячей заменой кода, немутабельных данных, сопоставлении с образцом и принципом let it fail) я не представляю. В отличии от использования data-flow механизмов на агентах типа Axum-овских.


Ты мало слишком писал на Эрланге, чтобы представлять себе этот толк. Никаких проблем выразить простейшие параллельные задачи, которыми и являются числодробилки, в модели Эрланга нет. Модель Эрланга может быть перенесена в любой язык. В том числе и в С++.
Re[34]: Axum: паралельное программирование
От: Gaperton http://gaperton.livejournal.com
Дата: 17.05.09 21:54
Оценка:
Здравствуйте, gandjustas, Вы писали:

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


AVK>>>Но при этом ты доказываешь, что твои фокусы с файберами, которые магия куда как более хардкорная, это тоже хорошо


G>>Секунду. Все что я доказываю, это что синхронная запись лучше асинхронной. И все.

G>Как в анекдоте:
G>-синхронная запись лучше, чем асинхронная
G>-чем лучше?
G>-чем асинхронная!

Весьма глупый комментарий. Я это показал достаточно развернуто (рядом), с примерами кода, для тех, кто умеет читать, что написано. Умеешь — прочтешь.

G>>Данная "декларативность" его имхо затрудняет.

G>Данная декларативность не влияет на наблюдаемое поведение.

Она влияет на поведение программы.
Re[19]: Axum: паралельное программирование
От: Gaperton http://gaperton.livejournal.com
Дата: 17.05.09 21:55
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Здравствуйте, Gaperton, Вы писали:


G>>А вот мой подход на файберах в том же С++, который я реализовал лет 6 назад для CQG, позволяет обрабатывать тысячи нитей без каких-либо проблем синхронизации,


V>Система была реал-тайм?


soft-realtime.

V>Мне вот не удавалось заставить нормально работать "обобщенный планировщик" в асинхронной среде, явная диспетчеризация и на примитивах синхронизации экономит, и эффективнее в разы. Да, расплачиваемся автоматной моделью, но в том же .Net выручает yield как раз для таких случаев.


У меня получилось. Мой планироващик отрабатывает за O(1), независимо от количества задач. Так же, как планировщик в современной венде или Linux.
Re[19]: Axum: паралельное программирование
От: Gaperton http://gaperton.livejournal.com
Дата: 17.05.09 21:59
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Здравствуйте, Gaperton, Вы писали:


G>>А вот мой подход на файберах в том же С++, который я реализовал лет 6 назад для CQG, позволяет обрабатывать тысячи нитей без каких-либо проблем синхронизации,


V>Система была реал-тайм?

V>Мне вот не удавалось заставить нормально работать "обобщенный планировщик" в асинхронной среде, явная диспетчеризация и на примитивах синхронизации экономит, и эффективнее в разы. Да, расплачиваемся автоматной моделью, но в том же .Net выручает yield как раз для таких случаев.

А вообще, нет проблем сделать и планировщик с жестким рилтаймом. Алгоритмы гибридных планировщиков, обеспечивающих хард рилтайм описывались еще в книге по оперсистемам Цикридзиса-Бернстайна. Другое дело, что в случае файберов жесткие гарантии обеспечить тяжело — не охота их насильственно прерывать. Хотя — и это можно.
Re[20]: Axum: паралельное программирование
От: Cyberax Марс  
Дата: 17.05.09 22:03
Оценка:
Здравствуйте, Gaperton, Вы писали:

V>>Мне вот не удавалось заставить нормально работать "обобщенный планировщик" в асинхронной среде, явная диспетчеризация и на примитивах синхронизации экономит, и эффективнее в разы. Да, расплачиваемся автоматной моделью, но в том же .Net выручает yield как раз для таких случаев.

G>У меня получилось. Мой планироващик отрабатывает за O(1), независимо от количества задач. Так же, как планировщик в современной венде или Linux.
Планировщик в современном Линуксе срабатывает за O(log N) времени — это даёт приятные фичи типа точного accounting'а и на практике работает как O(1), так как процессов не бывает особо много.
Sapienti sat!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.