Числовая вычислительная среда в облаке? [Студенческий проект]

Я студентка факультета компьютерных наук, в настоящее время я учусь на последнем курсе. Как и мой последний проект года, я думаю о создании математической вычислительной среды, подобной matlab , в качестве SAAS , которая поддерживает матричные манипуляции, отображение функций и данных, операции обработки изображений и т. Д. Проект будет создан в Java + Scala. Scala будет использоваться для DSL приложения. Остальная часть приложения будет запрограммирована на Java.

Я думал о реализации этой системы на движке приложений Google, чтобы мы могли распараллеливать различные алгоритмы на нескольких серверах и, таким образом, получать более быстрые результаты. Однако у меня нет никакого предшествующего опыта веб-разработки (за исключением некоторых простых сайтов на PHP).

Итак, у меня возникли следующие ключевые вопросы:

  1. Прежде всего, имеет ли смысл размещать такое приложение, как matlab, в облаке?
  2. Насколько легко или сложно было бы написать такое приложение через google app engine учитывая мой ограниченный опыт веб-разработки?
  3. Не могли бы вы указать мне на некоторые уже существующие проекты, которые распараллеливают алгоритмы математической, графической и графической обработки изображений.

Я знаю, что вопрос очень субъективный, но я все же прошу вас всех не закрыть его, так как я очень запутался в отношении своего проекта и мне нужен совет специалиста.

Любой гепатит был бы очень признателен!

Спасибо!

9
задан Daniel C. Sobral 12 August 2010 в 14:28
поделиться

6 ответов

Это абсолютно логично, и есть два существующих проекта, которые запускают числовые процедуры в облаке.

Biocep (бесплатно, запускает R & Scilab на EC2 или Eucalyptus) и Monkey Analytics (коммерческий, запускает R, Octave или Python на EC2).

3
ответ дан 4 December 2019 в 12:57
поделиться

Примерно полгода назад я задумал сделать такую ​​штуку.

Мысли закончились ничем, кроме кода на http://code.google.com/p/metaplasm ...

На самом деле, сложность GAE заключается в том, что вычисления должны быть нарезанный на тридцатисекундные срезы без разделяемой памяти (только кэш памяти и база данных). После того, как вы это сделаете, все остальное пройдет гладко: -)

4
ответ дан 4 December 2019 в 12:57
поделиться

У вас могут возникнуть проблемы с этим типом сервиса в GAE, поскольку он довольно ограничивает то, что вам разрешено делать в песочнице. Из Документов GAE

Приложение App Engine не может:

  • создавать подпроцесс или поток. Сеть запрос к приложению должен быть обрабатывается в рамках единого процесса в рамках несколько секунд. Процессы, требующие очень долго ждать ответа прекращено, чтобы избежать перегрузки веб сервер.

Из-за этого может быть сложно предлагать типы услуг, которые вы описываете. Масштабирование, которое предлагает GAE, позволяет увеличить количество запросов, которые вы можете обрабатывать, но на самом деле не предлагает вам хороших инструментов для масштабирования ресурсов ЦП для одного запроса.

Кажется, идея для проекта интересная, удачи.

2
ответ дан 4 December 2019 в 12:57
поделиться

App Engine, вероятно, не подходит для этого. App Engine ориентирован на веб-приложения, в которых каждый запрос выполняет небольшой объем вычислений, но вам необходимо обслуживать много из них - большинство традиционных веб-приложений, таких как сайты социальных сетей, блоги, веб-игры и т. Д. и так далее и тому подобное. Он не нацелен на службы, которым необходимо выполнять интенсивные вычисления для одного пользовательского запроса, и, хотя у него есть службы для параллельной фоновой обработки, они асинхронны, что, вероятно, также не то, что вы хотите для вашего варианта использования.

Я бы порекомендовал взглянуть на другие облачные среды, такие как Amazon EC2, на предмет необходимой вам вычислительной мощности и параллелизма. Тем не менее, App Engine по-прежнему будет выполнять замечательную работу в качестве интерфейса для такой службы! Например, вы можете использовать приложение App Engine для управления заданиями, отправки их на серверные ВМ и включения и выключения экземпляров виртуальных машин в зависимости от нагрузки.

4
ответ дан 4 December 2019 в 12:57
поделиться

Почему бы не попробовать распределенную вычислительную систему с открытым исходным кодом BOINC?

http://boinc.berkeley.edu/

Она позволяет использовать несколько платформ, несколько сред хостинга и услуги всех видов численных вычислений рабочие места в зависимости от параллельных сред.

Более того, Вам не нужны какие-либо знания в области веб-разработки. Вам нужно просто создать новый проект в BOINC и попробовать запустить его в существующей среде добровольных вычислений.

2
ответ дан 4 December 2019 в 12:57
поделиться

Для меня нет смысла писать остальное на Java. Я думаю, что именно здесь Scala будет иметь наибольшее значение.

1
ответ дан 4 December 2019 в 12:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: