Начало работы с EC2 для параллельных приложений с интенсивными вычислениями (не веб) - PullRequest
3 голосов
/ 14 октября 2011

Я использую LIBSVM для регрессионного анализа.Работает как чемпион.Но при поиске по сетке с тремя параметрами для оптимизации параметров модели все четыре ядра на моем процессоре Intel с тактовой частотой 2,66 ГГц максимально используются, и мне все еще нужно подождать пару часов, чтобы сгенерировать одну модель.

Это похоже наработа для Amazon EC2.

Я видел множество учебников и вводных материалов по использованию EC2 для задач, связанных с Интернетом.

Но что, если у вас есть небольшая специализированная программа ANSI-C с интенсивными вычислениями, которую вы хотитезапустить несколько экземпляров на EC2?Кто-нибудь может дать указания о том, как это сделать (или даже просто умные слова для поиска)?

1 Ответ

2 голосов
/ 01 декабря 2011

Не думаю, что ваш квест слишком отличается от квеста в веб-приложении. Ваш стек, конечно, отличается, но независимо - принципы остаются теми же.

Как кто-то прокомментировал ваш вопрос: Elastic Map Reduce может быть тем, что вы ищете, чтобы легко распараллелить вашу работу и т. Д. Если это слишком ограничено, вы можете посмотреть на Cloudera . Готовый к грохоту дистрибутив hadoop с поддержкой для EC2, а также .

Если map-redu * вам не по вкусу, то вам нужно настроить свой собственный экземпляр. Грубо говоря, ключевые моменты таковы:

  1. Вы хотите выяснить способ запуска экземпляров EC2.
  2. Вы хотите найти способ загрузить и настроить их.
  3. Кластер / сеть

Запуск экземпляров EC2

Если вам не нужно что-то вроде автоматического масштабирования или пользовательского интерфейса, консоль AWS отлично справится с работой. Вы должны выбрать AMI (Amazon Machine Image), подходящий для вашего проекта. Я бы, наверное, посмотрел либо на официальный AMI , либо на что-нибудь на основе Ubuntu (если я правильно помню, Ubuntu - наиболее часто используемый Linux на EC2).

Но это зависит от вас и ваших предпочтений. (И я не знаю достаточно о вашем проекте.)

После того, как вы выяснили, какая настройка вам подходит, самый простой способ клонировать вашу работу - это настроить собственный AMI и запускать с него экземпляры и т. Д.

Бутстрапирование

Самозагрузка может быть с использованием того, что EC2 называет user-script. Он позволяет вам передать сценарий оболочки в экземпляр, который будет выполнять вызовов для настройки вашего стека и т. Д. Я не уверен, что требуется в этом случае и т. Д. Итак, если вы прокомментируете или Расширьте свой ответ, я мог бы вдаваться в подробности здесь.

Кластер / Networking

Это дикое предположение, так как я не уверен, что делает ваш код, или как он работает и т. Д. Если это не нужно, я, вероятно, сначала уменьшу масштаб, используя один экземпляр. Вы можете легко получить много ядер и оперативной памяти с EC2. В зависимости от того, требует ли ваша работа больше ОЗУ или ЦП, обратите внимание на типы экземпляров с высоким быстродействием и с большим объемом памяти .

Вы можете начать с t1.micro, который в настоящее время вы можете получить бесплатно даже и перейти оттуда.

Дайте мне знать, если это поможет!

...