В данном случае не вижу в этом (в распараллеливании) смысла. Это была попытка поиска минимальной константы для квадратов шестого порядка из чисел Смита. Была надежда что удастся проверить ряд констант (точного количества не помню). В таком случае нет разницы - запускать несколько процессов с разными константами или один процесс параллельно для одной константы.
Попытка поиска минимальной константы так и не завершилась!
Все потенциальные константы не проверены.
Сейчас я занимаюсь (вместе с svb, он ведёт поиск по своей программе) поиском всех пандиагональных квадратов с магической константой 5964. И здесь ваша оценка (40-50 часов на всю проверку этой константы), которую вы дали в своей статье, не выдерживает никакой критики.
Дело в том, что проверка даже одного числа (вы понимаете, о чём я говорю) занимает несколько суток! А в массиве первоначально 72 числа (или 76, не помню точно).
Мне не удалось проверить до конца несколько чисел, даже оставляя компьютер работающим на ночь (дважды на вторые сутки отключали электричество). Это притом, что я начала проверку после того, как ряд чисел был проверен svb, в массиве оставалось 66 чисел.
Сейчас продолжается проверка, программа работает вторые сутки (для одного конкретного числа), проверяется число 2902, это 61-ое число массива.
svb сообщил в теме "Магические квадраты", что проверка одного числа (кажется, 2965) для магической константы 5964 у него заняла 44 часа. Это я к тому, что у него компьютер производительнее моего.
Это что касается проверки константы 5964.
Одновременно с этим я проверяю и другие потенциальные константы, пытаясь всё же завершить проверку всех констант. Даже проверка меньших констант выполняется очень долго. Например, проверка константы 4938 по программе svb заняла три дня (с прерываниями на ночь).
[Кстати, о прерываниях... для проверки разных чисел можно делать прерывания и начинать потом с прерванного места. А вот при проверке одного и того же числа такие прерывания делать невозможно. Об этом я тоже здесь написала. Если бы такие прерывания были возможны, жить стало бы намного легче
А сделать это совсем несложно, как мне кажется.]
И это притом, что проверяются только числа вида 4(mod 9). А по-хорошему надо проверять все числа, ибо пока так и не доказано (насколько мне известно), что пандиагональные квадраты 6-го порядка составляются только из чисел Смита такого вида.
В программе svb предусмотрена проверка всех чисел Смита (без фильтра), но это в разы увеличивает время выполнения программы.
Одним словом, смысл найти пути убыстрения выполнения программы есть и очень даже большой!
Поиск более эффективного алгоритма - да, это тоже путь. Но вам очень хорошо известно, сколько усилий было потрачено на оптимизацию предложенного в вашей статье алгоритма. Этим занимались четверо: Pavlovsky, вы, svb и я, используя при этом всё лучшее, что придумано другими.
Но увы! Задача так и не решена.
Запуск одновременно двух программ (для проверки разных констант) я делаю. Но всё равно это не даёт большого эффекта.
Я, конечно, мало что понимаю в распараллеливании, но здесь писали, что распараллеливание процесса может дать выигрыш во времени в несколько раз! А не только в 2 раза (например, на моём компьютере с двухядерным процессором).