Я работаю над приложением, которое нужно искать в чрезвычайно большом пространстве состояний. Для этого мне был предоставлен доступ к узлу кластера с 32 ядрами. Моя программа не потребует большой памяти (вероятно, порядка 10 мегабайт), и мне не нужно делать много ввода-вывода (кроме того, для вывода решения, когда оно найдено в каком-то текстовом файле). Поэтому мой вопрос становится: лучше ли мне писать программу, чем запускает несколько потоков для параллельного выполнения поиска, или это то же самое, что и запуск экземпляров тех же процессов, что пространство поиска было разделено равномерно между они (заданы с разными аргументами командной строки)?Несколько потоков против нескольких процессов
В моем случае пространство можно искать независимо, поэтому мне не нужна общая память между потоками/процессами. Меня беспокоит только эффективность поиска. Стоит отметить, что этой программе, вероятно, придется работать по порядку недель-месяцев. Пожалуйста, извините мое невежество, я с теоретической точки зрения.
Что такое ОС? – Dialecticus
CentOS 6 - Будем писать это на C/C++. –
Для совершенно разделенной проблемы, вероятно, не будет разницы в производительности между использованием потоков и процессов. Используйте то, с чем вам удобнее. Одно из преимуществ процессов: если один рабочий сбой, только тот рабочий должен быть перезапущен, тогда как в многопоточной программе авария в одном потоке может снести все. – EOF