Показать сообщение отдельно
Старый 22.12.2009, 18:53   #14
george
Newbie
 
Регистрация: 03.08.2009
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Riper Посмотреть сообщение
1. Вы описываете некоторый язык, допускающий параллельное вычисление данных. Этот язык моделирует последовательное изменение значений массивов данных. Подозреваю что это получится контекстно-зависимый язык (в смысле что язык описывается контекстно-зависимой грамматикой). Результатом должно быть некое доказательство адекватности построенной модели (выведенного языка) реальным задачам и вычислениям.
Да, некоторый функциональный язык, являющийся вариацией лямбда-исчисления. Функции, работа со списками, зависимость по данным и отсутствие императивных конструкций.
Только не понял, почему он будет описываться КЗ-грамматикой?... Она же в языках программирования не применяется, насколько я знаю - из-за сложности ее разбора, а также из-за невысокой практической ценности.


Цитата:
Сообщение от Riper Посмотреть сообщение
2. Вы описываете допустимые правила вычислений для различных архитектур в виде других языков (как КЗ так и КС). Результатом опять же является доказательство правильности построенной модели.
Да, так. И не только под разные архитектуры. Для начала можно взять, например, многоядерные процессоры с разным числом ядер.

Цитата:
Сообщение от Riper Посмотреть сообщение
3. Вы разрабатываете алгоритмы (и доказываете их) приведения языка из п.1 к любому языку из п.2 (или не любому, что означает то что ваш язык не исполним на данной архитектуре).
Не совсем понял про "приведение". Мы разрабатываем алгоритмы исполнения языка из п.1. на разных архитектурах, используя описание правил вычислений на языке из п.2. Может быть, это можно назвать приведением.

Цитата:
Сообщение от Noxter Посмотреть сообщение
Я пока использую программу LeaderTask. Не скажу что это очень удобная программа, но лучшее из того что было перепробовано (не мало программ).
Спасибо, посмотрю.



Цитата:
Сообщение от Noxter Посмотреть сообщение
Есть идея написать собственное творение для этих и других огранизационных нужд.
Так если есть какие-то предложения\вопросы - ждем-с.
Тоже думал над этим. Но сначала надо изучить, что уже есть


Цитата:
Сообщение от Noxter Посмотреть сообщение
PS. Интересно а gcc разве не решает вашу задачу? Список поддерживаемых архитектур/платформ огромен. Я сам работаю с небольшими надбавками на x86, x64, x81, ARM7, ARM9.. Также как и Python
Не решает. Конечно, для последовательного алгоритма решает.
Но возьмите, например, многоядерную машину.
Чтобы запрограммировать для нее параллельный алгоритм, вы напишете на gcc код, создающий взаимодействующие между собой потоки. Но это будет ручное, императивное управление доступными аппаратными ресурсами на самом деле. Вы все равно говорите ОС, когда и как надо создавать потоки и выделять для них порции вычислений.
Задача переложить часть (в идеале всю) этой ручной работы на некоторое инструментальное средство. Отсюда и функциональный язык, чтобы обеспечить максимальную гибкость его трансляции.

Добавлено через 1 минуту 47 секунд
Цитата:
Сообщение от Carro Посмотреть сообщение
гм, боюсь, вы не поняли.. ну вот как пример, вы в курсе, что на Интел и Спрак разный способ хранения данных типа float . Т.е. при передачи их из разных ОС систем, надо либо конвертировать расположение байтов , либо нет ... все это можно зашить, например, в некое middleware типа CORBA, а можно ручками самим .. и надо остлеживать на какой ОС и с какой ОС идут данные.
Да, подобные проблемы тоже можно решить, но у нас упор на параллелизм.
А так да, хороший пример архитектурной зависимости/зависимости от аппаратных ресурсов.
george вне форума   Ответить с цитированием
Реклама