Правильно ли я понял, что ускорение происходит не за счёт качества процессора, а за счёт количества ядер?
В последнее время много шумихи о том чтобы использовать более энергоэффективные процессоры. Но в целом так больше вычислительных блоков более эффективные вычисления.
И если да -- то для получения ускорения надо распараллеливать прогу?
Да. Причем на нескольких уровнях.
Правильно ли пишут, что за счёт многоядерности всё ускоряется в миллион (1 000 000) раз?
Ускорение зависит от числа вычислительных блоков.
Есть формула Амдала, из которой видно, что может существовать насыщение.
Правда она основана на предположение, что не всякий алгоритм можно распределить. А вот доказательство этого предположения я не видел.
На самом деле это узкий класс задач которые не поддаются распараллеливанию.
Современный компьютер имеет производительность 20*10^9 flops на ядро.
В списке top500 самый высокопроизводительный компьютер имеет производительность порядка
flops. Так что быстрее 50 000 ну никак не получится.
В-третьих, не всякая задача хорошо распараллеливания. Есть такие в которых на 2 двух кратное ускорение нужно 4 кратное увеличение вычислительных блоков.
И насколько быстрым будет процесс, если работать с целыми числами, а не с дробными?
Зависит от архитектуры. Современные процессоры заточены на плавающую точку и с плавающей точкой вычисления быстрее.
Обычно ускорение достигается за счёт снижения точности вычислений.
Есть ли вычислительный центр в Москве, чтобы при необходимости можно было сходить туда?
Да. И не один. На сайте top500.org можно найти расположения и далее по ссылкам выйдете на контакты.
Распараллелить может и видеокарта.
В top500 много гибридных систем, как раз на видеокартах.
36 000 процессоров AMD, имеющих доступ к общей памяти.
Не имеет. Доступа там нет. Обычно для высоко производительного компьютера архитектуры памяти такова: локальный процессор имеет доступ к своей памяти и конвейерная передача данных от одного процессора к другому через ЛВС.