Пишу приложение в котором используется очень разветвленный сложный хэш, т.е. имеется несколько уровней вложения подхэшей: некоторые ключи хэша содержат ссылки на анонимные хэша и т.д. Этот хэш постоянно изменяется, растет, т.к. данные накапливаются.Встала задача параллельного программирования. Сейчас думаю что выбирать: потоки или fork.
Система: Linux Debian.
Т.е. суть вопроса: при каком способе организации IPC я меньше потеряю в скорости работы с этим хэшем: при использовании threads и threads::shared ЛИБО при использовании нескольких процессов и расшаривания хэша и его подхэшей с помощью IPC::Shareable?
А скорость очень критична.
Также хотелось бы понимать, как perl использует многоядерные и многопроцессорные системы. т.е. если я создам 2 потока, они будут физически выполняться на разных ядрах/процессорах по умолчанию или надо как-то перлу об этом сказать, чтобы он их выполнял на разных ядрах/процессорах?
И, если я создам два процесса форком, как сказать перлу, чтобы он один процесс выполнял на одном ядре/процессоре, а другой на другом ядре/процессоре?