2024-02-06

vak: (Житель планеты Узм)
Что-то там происходит в туманности Киля, а мы и не в курсе. Кликайте на картинку чтобы увеличить.

vak: (Default)
Померяем производительность симулятора суперкомпьютера Крэй-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
... )
Nanoseconds for one run through Dhrystone: 65968.5
Million Dhrystones per Second: 0.015
DMIPS: 8.6
Видим цифру в 0.015 миллионов драйстоунов в секунду, то есть те же 15 тысяч, что и на реальной машине. Выходит, Raspberry Pi 5 симулирует Крэй примерно со скоростью настоящего суперкомпьютера.
vak: (Default)
[personal profile] spamsink предложил запустить на Крэе известный тест enquire.c Стивена Пембертона, из статьи "Everything you wanted to know about your C compiler, but didn't know who to ask". Пришлось побороться некоторое время с Си компилятором. Как выяснилось, он не кушает вещественные литералы, потому что отсутствует некая библиотека. После замены вещественных литералов целочисленными тест успешно скомпилировался. Вот его результат:
длинно и скучно )
Дальше тест зависает. Как я понимаю, он пытается определить максимальный размер памяти, доступный для malloc(). Но ядро Unicos его на этом подвешивает.