Сергей Прохоренко писал(а):
Распараллеливание вычислений совершенно не характерно для микроконтроллеров. Им не приходится решать такие задачи ...
Извините, Сергей, но у вас или очень однобокое понимание ЧТО ДОЛЖНЫ делать микроконтроллеры, или – очень старое.
Не верите мне – зарегистрируйтесь на муровском сайте по Си-форту – только для получения описания видения Муром со товарищи (на основании анализа тенденций), к чему идёт отрасль. Первым же примером применения нового процессора является... музыкальный центр :о) (там – от самих алгоритмов дешифрации потоков и до непосредственно управления периферией и связью между блоками)
Дальше – работа по анализу поступающей информации в аудиодатчике.
Что значит – ОБЪЁМНЫЕ задачи?
Величины входных файлов для декодера аудиопотока ЗНАЧЕНИЯ НЕ ИМЕЮТ! Главное, в этом случае, успеть дешифровать поток и передать его на ЦАП-части с соблюдением всех требований по качеству дешифрации и обработке. А будет это 1024 байта или 4-хгигобайтный фильм с ДиВиДи – КАКАЯ РАЗНИЦА?
Сергей Прохоренко писал(а):
Язык программирования, на котором описываются распараллеливаемые (чуть язык не сломал!) вычисления, должен иметь конструкции для описания разбиения задач на параллельные подзадачи, где это невозможно сделать автоматически.
Свежая мысль! :о)))
А ЧТО вы распараллеливаете? По какому аспекту, нюансу, понятию вы допускаете «невзаимовлияние» взаимодействующих сущностей?
Нет, ну, в общем, - понятно по дисциплине доступа к данным. Но – какой базовый набор (идеологию) вы выберете? Мне и позиксная понятна, и Акттивного Оберона (Явы) и из Лимбо (или QNX). Можно ещё на шаг дальше – как в Зонноне (Композите).
В том-то и вопрос...
Сергей Прохоренко писал(а):
Компилятор должен обладать средствами автоматического разбиения задач на параллельные подзадачи, где это возможно.
Тогда на вас ложиться огромный труд научить компилятор зачаткам понятий из вашей предметной области... :о))))) Будем писать экспертную систему для обучения компиляторов? :о)
Сергей Прохоренко писал(а):
До недавнего времени распараллеливание вычислений было головной болью специалистов в узких областях, но сейчас происходит вытеснение одноядерных процессоров общего назначения многоядерными на обычных персоналках, так как достигнут практический предел увеличения тактовой частоты. Поэтому распараллеливание вычислений становится распространенным явлением. Это и есть "вызов" языкам программирования.
Нет никакого вызова. Если не изменится отношение к решениям задач максимум на что сподигнуться «распараллеливатели» - разнесением задач Оси и пользователей по отдельным исполняющим устройствам... И не на уровне языка описание будет, а, всё та же песня – на уровне библиотек и «пришлёпок»...