| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Системное программирование > Использование threads, IPS::Shareable для hash |
| Автор: loginn 1.8.2011, 09:38 |
| Пишу приложение в котором используется очень разветвленный сложный хэш, т.е. имеется несколько уровней вложения подхэшей: некоторые ключи хэша содержат ссылки на анонимные хэша и т.д. Этот хэш постоянно изменяется, растет, т.к. данные накапливаются. Встала задача параллельного программирования. Сейчас думаю что выбирать: потоки или fork. Система: Linux Debian. Т.е. суть вопроса: при каком способе организации IPC я меньше потеряю в скорости работы с этим хэшем: при использовании threads и threads::shared ЛИБО при использовании нескольких процессов и расшаривания хэша и его подхэшей с помощью IPC::Shareable? А скорость очень критична. Также хотелось бы понимать, как perl использует многоядерные и многопроцессорные системы. т.е. если я создам 2 потока, они будут физически выполняться на разных ядрах/процессорах по умолчанию или надо как-то перлу об этом сказать, чтобы он их выполнял на разных ядрах/процессорах? И, если я создам два процесса форком, как сказать перлу, чтобы он один процесс выполнял на одном ядре/процессоре, а другой на другом ядре/процессоре? |
| Автор: afiskon 1.8.2011, 10:31 |
| Смотря как напишите. Можно и на потоках хорошо распараллелить обработку. Но на fork(), мне кажется, проще. http://eax.me/unix-way/. |