vak: (Default)
[personal profile] vak
Померяем производительность симулятора суперкомпьютера Крэй-SV1, работающего на Raspberry Pi 5. Используем классический бенчмарк Dhrystone. Известно (отсюда), что на версии 1.0 этого бенчмарка Крэй давал около 15 тысяч драйстоунов в секунду:
 *----------------DHRYSTONE VERSION 1.0 RESULTS BEGIN--------------------------
* MACHINE MICROPROCESSOR OPERATING COMPILER DHRYSTONES/SEC.
* TYPE SYSTEM NO REG REGS
* -------------------------- ------------ ----------- ---------------
* CRAY-X-MP/12 105Mhz COS 1.14 Cray C 10204 10204
* CRAY-1A 80Mhz CTSS Cray C 2.0 12100 13888
* CRAY-X-MP/48 105Mhz CTSS Cray C 2.0 15625 17857
У меня Dhrystone версии 2.1, так что я не уверен, что меряю точно в тех же попугаях. Учтём в уме.

Пересылать файлы с хост-компьютера на Крэй можно по FTP. Под Unicos работает FTP-сервер. Беру файлы с Гитхаба, маленько правлю Makefile и компилирую:
% make
cc -O3 -DNRUNS=1000000 -c -o dhry_1.o dhry_1.c
cc -O3 -DNRUNS=1000000 -c -o dhry_2.o dhry_2.c
cc -o dhrystone dhry_1.o dhry_2.o -L/usr/gen/lib
Запускаю:
% ./dhrystone

Dhrystone Benchmark, Version 2.1 (Language: C)

Execution starts, 1000000 runs through Dhrystone
Execution ends

Final values of the variables used in the benchmark:

Int_Glob: 5
should be: 5
Bool_Glob: 1
should be: 1
Ch_1_Glob: A
should be: A
Ch_2_Glob: B
should be: B
Arr_1_Glob[8]: 7
should be: 7
Arr_2_Glob[8][7]: 1000010
should be: Number_Of_Runs + 10
Ptr_Glob->
Ptr_Comp: 122654
should be: (implementation-dependent)
Discr: 0
should be: 0
Enum_Comp: 2
should be: 2
Int_Comp: 17
should be: 17
Str_Comp: DHRYSTONE PROGRAM, SOME STRING
should be: DHRYSTONE PROGRAM, SOME STRING
Next_Ptr_Glob->
Ptr_Comp: 122654
should be: (implementation-dependent), same as above
Discr: 0
should be: 0
Enum_Comp: 1
should be: 1
Int_Comp: 18
should be: 18
Str_Comp: DHRYSTONE PROGRAM, SOME STRING
should be: DHRYSTONE PROGRAM, SOME STRING
Int_1_Loc: 5
should be: 5
Int_2_Loc: 13
should be: 13
Int_3_Loc: 7
should be: 7
Enum_Loc: 1
should be: 1
Str_1_Loc: DHRYSTONE PROGRAM, 1'ST STRING
should be: DHRYSTONE PROGRAM, 1'ST STRING
Str_2_Loc: DHRYSTONE PROGRAM, 2'ND STRING
should be: DHRYSTONE PROGRAM, 2'ND STRING

Nanoseconds for one run through Dhrystone: 65968.5
Million Dhrystones per Second: 0.015
DMIPS: 8.6
Видим цифру в 0.015 миллионов драйстоунов в секунду, то есть те же 15 тысяч, что и на реальной машине. Выходит, Raspberry Pi 5 симулирует Крэй примерно со скоростью настоящего суперкомпьютера.

Date: 2024-02-07 02:08 (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi

Чудеса, конечно.

Date: 2024-02-07 02:35 (UTC)
ircicq: (Default)
From: [personal profile] ircicq
Dhrystone не замеряет производительность векторных операций, а Крэй выделялся ими

Date: 2024-02-07 17:28 (UTC)
tiresome_cat: (CuriousCat)
From: [personal profile] tiresome_cat
Как? А крипту майнить? :)))

Возможно я ошибаюсь, но главное преимущество производительности суперкомпьютеров - в много-много-много-многопоточности?

Date: 2024-02-07 21:56 (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Драйстоуны с ростом версии отличались большей защитой от оптимизации. Т. е. раз 2.1 показывает 15 тысяч, значит 1.0 показывал бы примерно столько без оптимизации (типа NO REG). Так что один в один выходит.

Date: 2024-02-10 05:39 (UTC)
From: [personal profile] sasza
Так есть же исходники и первой версии. Почему бы не попробовать для надёжности?

Date: 2024-02-10 02:35 (UTC)
ccpro: (Default)
From: [personal profile] ccpro
как далеко мы зашли - симулятор крея на распбери!

Date: 2024-02-10 05:33 (UTC)
From: [personal profile] sasza
Дальше только симулятор Распберри на Крее.