Доброго времени суток!
Есть задача сложной многоступенчатой обработки данных. Данные организованы в полностью независимые порции. Обработка разбивается на набор элементарных действий, тоже независимых друг от друга. Таким образом, всю систему можно представить как сеть узлов обработки. Отдельный узел принимает на вход порции данных, каким-то образом их обрабатывает и выдает на выход. Каждая порция в каждом узле обрабатывается независимо, можно одновременно обрабатывать в одном узле несколько порций, работа узлов также может идти параллельно.
Нужно задействовать все вычислительные мощности компьютера, на котором это должно выполняться (пока доступна машинка с двумя четырехядерными Зионами), в перспективе - сделать систему распределенной и использовать сетку из обычных разношерстых компов.
Хочется абстрагироваться от реализации базовой части такой системы (параллельная работа узлов, передача данных между ними и прочее) и сосредоточиться на реализации собственно логики обработки. Какие языки/фреймворки/инструменты тут могут помочь? Написал прототип на чем-то вроде JavaScript'а, встроенного в сервер приложений с возможностью параллельного выполнения скриптов - 80 процентов кода отвечает за базовую часть. Можно ли улучшить этот результат?
Сама логика узлов может быть реализована в сторонних программах или программных компонентах, так что нужны инструменты вызова внешних программ и встраивания кода на С.