Ресурсовед
Задача состоит из множества подзадач, характеризуемых трудоемкостью решения. Трудоемкость - случайная величина, распределение известно и одинаково для всех подзадач.
Распределенная система состоит из кластеров по много процессоров (вообще-то узлов, на них процессоры в них ядра, но не суть), объединенных через Интернет. На каждом кластере есть очередь заказов ресурсов - нескольких процессоров. При заказе указывается количество процессоров и срок резервирования. Заказ ожидает в очереди, пока на кластере не освободится запрошенное количество процессоров.
Если системе выделен ресурс на кластере, она может направить под-задачи на решение. Если подзадача решается целиком, система получает решение, если нет - промежуточные результаты пропадают. Время решения подзадачи пропорционально ее трудоемкости и обратно пропорционально производительности процессора кластера.
Библиотека должна уметь для конкретной задачи спланировать заказы ресурсов на кластерах. Для каждого кластера известна зависимость времени ожидания в очереди от количества заказанных процессоров и срока резервирования. В процессе решения библиотека должна распределять нерешенные подзадачи на ресурсы согласно различным алгоритмам, перечень которых пока не известен (нужно заложить такую возможность)
Также нужно предусмотреть возможность использования различных алгоритмов планирования заказов ресурсов.