скрипт python на облачной платформе Google все еще работает медленно

# #python #google-cloud-platform #cloud #supercomputers

#питон #google-облачная платформа #облако #суперкомпьютеры

Вопрос:

заранее спасибо за ваше терпение — я не программист, а исследователь. У меня есть модель, разработанная в коротком скрипте python, которая требует больших вычислительных затрат. Ввод временного горизонта 3 занимает около 2 минут на моем MacBook Pro 2020 года, но мне нужно, чтобы он выполнял 6 шагов, и это занимает время, экспоненциально увеличивающееся по размеру ввода. Мой MacBook Pro 2020 года не получил ответа с вводом 6 за почти 24 часа.

Поэтому я, наконец, понял, как использовать бесплатное пробное время на облачной платформе Google, используя его полностью. Я создал виртуальный экземпляр, используя виртуальную машину «расширенных вычислений» с 8 ядрами. Мне удалось запустить свой скрипт, установить необходимые модули python и так далее (все это заняло у меня довольно много времени). Я наконец — то заставил его работать-но для ввода 3, для которого требуется 2m8 на моем ноутбуке, тот же сценарий / среда на виртуальной машине заняли 4m36 секунд!

Поэтому я думал, что в основном арендую суперкомпьютер … но, очевидно, я совершенно не такой? Любой совет приветствуется! Могу ли я использовать более быструю машину в облаке Google? Или есть лучший сервис, который я могу попробовать? Я не хочу использовать свои собственные деньги для этого проекта, если смогу помочь, но я мог бы.

Еще одна вещь: мониторинг виртуальной машины Google, она использует только 12,5% процессора. Предположительно, это связано с тем, что есть 8 ядер, и он использует только одно (поэтому я должен был настроить меньше ядер). Но запуск сценария на моем домашнем рабочем столе (Ubuntu 18.04) htop говорит мне, что есть 12 потоков python и все процессоры работают на полную мощность, поэтому я предположил, что виртуальная машина Google (Debian 10) может сделать то же самое?

Комментарии:

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

2. 2) Если ваш код написан для нескольких процессоров / многопоточности, то да, вы можете использовать все доступные ядра. Поскольку ваше приложение, работающее в облаке, использует только одно ядро, вам может потребоваться установить/обновить/заменить библиотеку потоков. Какой именно, понятия не имею, так как ваш вопрос не содержит этой информации.

3. Спасибо! Я знал, что многие облачные сервисы не являются особенно мощными компьютерами, но я отправился на поиски чего — то, что я считал мощным, и лучшее, что я смог найти, — это «вычислительный движок» Google (по крайней мере, многообещающее название!) С виртуальной машиной, предназначенной для расширенных вычислений. Где я могу найти действительно мощное компьютерное время для аренды? Или это просто недоступно для бюджетов отдельных лиц?

4. У Google есть оптимизированные для вычислений типы экземпляров. Однако я думаю, что у вас есть проблема с потоковой передачей, которую необходимо решить в первую очередь, прежде чем вы сможете в полной мере использовать преимущества больших размеров экземпляров.

5. Еще раз спасибо! Я не могу понять, почему мой рабочий стол может использовать все 12 ядер, поэтому я не могу воспроизвести его на виртуальной машине. Я не писал никакого причудливого многопроцессорного сценария или чего-то в этом роде … в нем просто каким-то образом запущено 12 идентичных процессов.