Многопоточность в AWS

Я новый пользователь AWS EC2, и я собираюсь развернуть в основном IO-ограниченное приложение на основе linux EC2 m4.крупный экземпляр. Насколько я могу прочитать на листе инстансов AWS, доступном здесь, У меня есть 2 vcpu, что означает, что у меня есть два hyperthreads, работающих на 1 физическом процессоре. Поэтому мой вопрос и мои сомнения касаются многопоточности обработки. По моему мнению, максимальное количество потоков, которые я могу использовать, должно быть 2, но мне было интересно, есть ли какие-либо рекомендации по многопоточным вычислениям на экземплярах AWS. В принципе, мое приложение читает большой файл (1.5 + GB), а затем ему нужно обработать его куски. Я думал о реализации шаблона «производитель-потребитель» (чтение 1 потока и обработка 1) или использовании картографического подхода (каждый поток открывает файл и ищет его раздел). Я знаю, что эти два подхода могут иметь различные сложности, но я заинтересован в выступлениях, поэтому мне нужно выжать как можно больше скорости!! Заранее спасибо.

1 ответ

  1. Если ваше приложение связано с вводом-выводом, использование многопоточной обработки, вероятно, будет иметь ограниченную полезность, так как многопоточность в первую очередь полезна для оптимизации вычислений, а не ввода-вывода. Тем не менее, если вы действительно хотите получить каждый последний бит скорости, ваш лучший выбор-это программировать его в обоих направлениях и посмотреть, что лучше работает в ваших конкретных обстоятельствах.