Цель гранта — преодолеть барьер параллельного программирования, которые стал весьма актуален в свете резко возросшей популярности многоядерных и многопроцессорных вычислительных систем.
Scala — функциональный и объектно-ориентированный язык программирования, основанный на Java и .NET. Он изначально включает некоторые конструкции параллелизации.
В расширенном конкурсном описании проекта (PDF) Одерский объясняет, что естественным способом параллелизации различных приложений является создание предметно-ориентированных языков программирования (domain-specific language, DSL) для каждой из сфер применения, будь то машинное обучение, динамика жидкостей, аналитика или финансовое моделирование. Он приводит Facebook и Google как примеры успешной параллелизации специфических задач (социальный граф и поиск, соответственно).
Но при этом в случае с DSL на основе Scala Одерский предлагает использовать «виртуализацию языка» (language virtualization). Это инновационный подход, в рамках которого сочетаются полиморфные вложения с предметно-ориентированными оптимизациями и поступенчатая компиляция. На первом уровне каждого DSL создаются высокоуровневые библиотеки на Scala, что практически обеспечивает общую платформу для всего семейства DSL.
Что-то как-то мутно. У нас есть: "полиморфные вложения с предметно-ориентированными оптимизациями и поступенчатая компиляция"?
Здравствуйте, Ka3a4oK, Вы писали:
KK>Что-то как-то мутно.
Та бабло они так пилят Цивилизованный научный метод распила.
KK>У нас есть: "полиморфные вложения с предметно-ориентированными оптимизациями и поступенчатая компиляция"?
Здравствуйте, hardcase, Вы писали:
H>Здравствуйте, Ka3a4oK, Вы писали:
KK>>Что-то как-то мутно.
H>Та бабло они так пилят Цивилизованный научный метод распила.
KK>>У нас есть: "полиморфные вложения с предметно-ориентированными оптимизациями и поступенчатая компиляция"?
H>Есть. Это сама философия наша.
предметно-ориентированные оптимизации это у вас где?
можно хоть один пример
Здравствуйте, hardcase, Вы писали:
H>Здравствуйте, Аноним, Вы писали:
H>>>Есть. Это сама философия наша.
А>> предметно-ориентированные оптимизации это у вас где? А>>можно хоть один пример
H>PegGrammar — посмотри как он предметно оптимизирует.
Видел, очень круто. Вот только оптимизация не предметно ориентированая, а встроенная. Ее нельзя добавить постфактом.
Здравствуйте, Аноним, Вы писали:
H>>PegGrammar — посмотри как он предметно оптимизирует.
А>Видел, очень круто. Вот только оптимизация не предметно ориентированая, а встроенная. Ее нельзя добавить постфактом.
Отлично, раз ты знаешь что такое "предметно ориентированная оптимизация" — дай окружающим определение. В моем понимании это наиболее эффективный с т.з. предметной области код, порождаемый DSL-системой макросов.
KK>Это инновационный подход, в рамках которого сочетаются полиморфные вложения с предметно-ориентированными оптимизациями и поступенчатая компиляция.
Способ преподнесения уж очень смахивает на мозго%бство и без того неискушённых обывателей. А если говорить по существу, то быстро откроется, что "это давно есть в ЛИСПе"
KK>Что-то как-то мутно. У нас есть: "полиморфные вложения с предметно-ориентированными оптимизациями и поступенчатая компиляция"?
Для начала им стоит пояснить их терминологию, а потом уже меряться письками. Касательно "предметно-ориентированными оптимизациями", звучит почти как "процессоры интел ускоряют интернет" — т.е. какое-то косвенное отношение есть, конечно, но в прямом смысле — тупость несусветная. Оптимизация — это улучшение характеристик чего-то _в_рамках_своей_среды_. Среда здесь — ЦПУ, память, поэтому "предметно-ориентированные" стулья/молекулы/облака здесь не канают. Это первое впечатление от их вброса.
KK>Цель гранта — преодолеть барьер параллельного программирования, которые стал весьма актуален в свете резко возросшей популярности многоядерных и многопроцессорных вычислительных систем.
Ну, мы обзавидовались. Дальше то что? В то что такой грант даст нам наше правительство и тем более Европа я (почему-то) не верю.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Ну, мы обзавидовались. Дальше то что? В то что такой грант даст нам наше правительство и тем более Европа я (почему-то) не верю.
В том-то и разница. Одерский верил, потому и получил
Здравствуйте, nikov, Вы писали:
VD>>Ага. Верующий. За ним один из крупнейших институтов Европы.
N>И, между прочим, не за красивые глаза.
Да у нас тоже не за красивые глаза пилят гранты .
Что они там такого многопоточного изобретут за эти лимоны? По ссылке очень правильно сказано, что "Скоро создатель Scala Мартин Одерский (Martin Odersky) сможет удвоить численность своей группы разработчиков, сказано в официальном блоге.". Вот это он и сделает.
А вот "Одерский объясняет, что естественным способом параллелизации различных приложений является создание предметно-ориентированных языков программирования" больше на тупой попил денег походит. Во первых скала тупо монолитный не расширяемый язык. А во вторых, сами по себе ДСЛ-и паралелизма не предоставляют. Если задача последовательная, то хоть ты трижды ее на ДСЛ опиши, ничего путного с распараллеливанием не выйдет.
Отличный пример парсинг. ДСЛ в виде грамматики сделать не сложно. Но так как распознование любого следующего символа зависит от распознования предыдущих, то распараллелить процесс невозможно в принципе.
Короче, "конкурсные описания проекта" он видимо очень хорошо пишет.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, nikov, Вы писали:
VD>>>Ага. Верующий. За ним один из крупнейших институтов Европы.
N>>И, между прочим, не за красивые глаза.
VD>Да у нас тоже не за красивые глаза пилят гранты .
VD>Что они там такого многопоточного изобретут за эти лимоны? По ссылке очень правильно сказано, что "Скоро создатель Scala Мартин Одерский (Martin Odersky) сможет удвоить численность своей группы разработчиков, сказано в официальном блоге.". Вот это он и сделает.
VD>А вот "Одерский объясняет, что естественным способом параллелизации различных приложений является создание предметно-ориентированных языков программирования" больше на тупой попил денег походит. Во первых скала тупо монолитный не расширяемый язык. А во вторых, сами по себе ДСЛ-и паралелизма не предоставляют. Если задача последовательная, то хоть ты трижды ее на ДСЛ опиши, ничего путного с распараллеливанием не выйдет.
VD>Отличный пример парсинг. ДСЛ в виде грамматики сделать не сложно. Но так как распознование любого следующего символа зависит от распознования предыдущих, то распараллелить процесс невозможно в принципе.
VD>Короче, "конкурсные описания проекта" он видимо очень хорошо пишет.
пример сильного распаралеливания в с++
матричные операции. последовательно ты оперируешь выражениями с сложением/обращением/умножением матриц. а сами операции распаралелены.
Здравствуйте, Аноним, Вы писали:
А>пример сильного распаралеливания в с++
А>матричные операции. последовательно ты оперируешь выражениями с сложением/обращением/умножением матриц. а сами операции распаралелены.
Так сказали же, что дээсэль дээсэлю — рознь. Одни задачи распараллелить можно, другие — нет.
Здравствуйте, VladD2, Вы писали:
VD>Но так как распознование любого следующего символа зависит от распознования предыдущих, то распараллелить процесс невозможно в принципе.
В принципе возможно, можно параллелить списки приоритетного выбора. Нужно парсить все его варианты параллельно, отбрасывая менее приоритетные при нахождении более приоритетного выбора. Таким образом при откате правила у нас уже будет либо полностью либо частично разобранная альтернатива.
Правда сомневаюсь, что переключение контекстов не съест весь профит, в большинстве случаев откаты совсем не глубокие и не затратные.
Здравствуйте, VladD2, Вы писали:
VD>>> Во первых скала тупо монолитный не расширяемый язык.
Скала отлично расширяется через написание плагинов к компилятору, например так в нее (scala 2.8.0 ) добавляли континуации.
Здравствуйте, Ka3a4oK, Вы писали:
KK>Одерский объясняет, что естественным способом параллелизации различных приложений является создание предметно-ориентированных языков программирования (domain-specific language, DSL) для каждой из сфер применения
Здравствуйте, VladD2, Вы писали:
VD>Отличный пример парсинг. ДСЛ в виде грамматики сделать не сложно. Но так как распознование любого следующего символа зависит от распознования предыдущих, то распараллелить процесс невозможно в принципе.
Кстати, можно попробовать сделать спекулятивный парсинг ветвей в правиле выбора
Здравствуйте, para, Вы писали:
P>Здравствуйте, VladD2, Вы писали:
VD>>Отличный пример парсинг. ДСЛ в виде грамматики сделать не сложно. Но так как распознование любого следующего символа зависит от распознования предыдущих, то распараллелить процесс невозможно в принципе.
P>Кстати, можно попробовать сделать спекулятивный парсинг ветвей в правиле выбора
P>только не знаю, как там со Scope-ами будет...