Я ищу для создания веб-приложения, которое должно запускать ресурсоемкие MCMC (цепь Маркова Монте-Карло) расчеты по требованию в R для генерации некоторых вероятностных графов для пользователя.
Ограничения:
-
Очевидно, что я не хочу запускать ресурсоемкие вычисления на том же сервере, что и внешний интерфейс веб-приложения, поэтому эти задачи должны быть переданы рабочему экземпляру.
-
Эти вычисления требуют большого количества CPU для запуска, и я хотел бы поддерживать латентность как можно ниже (надеюсь, секунды, а не минуты), поэтому я предпочел бы выполнять вычисления на более жестком оборудовании.
-
Я не могу позволить себе запустить мощный экземпляр EC2 со скоростью ~ 66 ¢/час x 24 часа в сутки, поэтому возможно по запросу или экземпляры запроса на поиск.
Вот варианты, которые я придумал:
-
Запустите дешевый, доступный рабочий экземпляр 24 часа в день, который принимает одна задача в то время управляется Amazon SWF (или SQS).
Минусы:- высокая латентность - более дешевое оборудование, более длительное время ожидания.
- высокая латентность - более дешевое оборудование, более длительное время ожидания.
-
Создайте более крупный рабочий экземпляр для каждой задачи (разверните его каждый раз, когда задание добавляется в очередь) и завершает экземпляр после завершения.
Минусы:- дорогой/расточительный - я бы заплатил за час на сервере
каждый раз и только используя секунды для моего расчета
- накладные расходы на запуск - разворачивает новый экземпляр EC2
по требованию вводят незначительную задержку (компенсируя
целая цель использования более жесткого оборудования)?
- дорогой/расточительный - я бы заплатил за час на сервере
каждый раз и только используя секунды для моего расчета
-
Как и # 2, но с точными запросами EC2 с низкой ставкой.
Минусы:- накладные расходы на запуск - см. № 2
- inconsistancy? - Я никогда раньше не работал с точечными запросами,
поэтому я понятия не имею, насколько изменчивым или практическим такое решение
было бы... я должен постоянно корректировать свои ставки, чтобы сделать
конечно, я все еще могу выполнять задания в часы пик? Кроме того, я полагаю
Мне нужно будет внимательно следить за моими процессами, чтобы убедиться, что они не
прерванный средний расчет.
- накладные расходы на запуск - см. № 2
-
Какое-то гибридное решение, где я активно контролирую рабочему корпусу и их нагрузкам и разумно разворачивать и заканчивать экземпляры в час для поддержания оптимального баланс стоимости и доступности
Минусы:- сложная и дорогостоящая настройка - если нет хороших управляемых
службы там, чтобы обрабатывать такие вещи, я должен был бы установить все
всю эту инфраструктуру самостоятельно...
- сложная и дорогостоящая настройка - если нет хороших управляемых
службы там, чтобы обрабатывать такие вещи, я должен был бы установить все
всю эту инфраструктуру самостоятельно...
Я бы хотел, чтобы была какая-то услуга, где я мог бы заплатить за высокодоступное оборудование по требованию на минуту-минуту, а не ежечасно.
Итак, мои вопросы таковы:
-
Как бы вы рекомендовали решить эту проблему?
-
Есть ли хорошее решение для управления экземплярами EC2, которое может сидеть на вершине Amazon SWF и помогать мне балансировать нагрузку и прекращать работу бездействия?
-
Могут ли ставки-запросы ставки решить мою проблему или они больше подходят для задач, которые не обязательно должны быть завершены сразу?