Мфлопс і продуктивність обчислювальних систем
МЕТОДИ ОЦІНКИ КОМП'ЮТЕРНИХ СИСТЕМ
Мфлопс і продуктивність обчислювальних систем
Часто продуктивність обчислювальних систем виражається в Мфлопс. Розглянемо питання вимірювання продуктивності обчислювальних систем більш докладно (ще більш детально див. Comp.benchmarks FAQ і зазначені там посилання).
Тести продуктивності (benchmarks) - загальні відомості
Мфлопс - що це значить? Англомовний термін MFLOPS є скороченням Millions of FLoating point OPerations per Second і означає Мільйон операцій з плаваючою крапкою в секунду.
MFLOPS часто вживається виробниками високопродуктивних обчислювальних систем для вказівки їх обчислювальної потужності при операціях з числами з плаваючою точкою. На жаль, практично завжди не вказується, що саме позначає вказане число MFLOPS.
Мені вдалося знайти два набори відомих тестів, результати яких виражаються в одиницях MFLOPS - це тести Flops і LINPACK.
Тести Flops Тести Flops засновані на вимірюванні швидкості виконання набору суміші інструкцій FADD, FSUB, FMUL і FDIV. Результати видаються в MFLOPS. Чотири різних тесту FLOPS1 - FLOPS4 розрізняються кількістю інструкцій FDIV в суміші (від 25% до 0%).
Тест можна використовувати як для скалярних, так і для векторних процесорів.
Тести LINPACK Ці тести народилися з бібліотеки підпрограм для задач лінійної алгебри LINPACK. Спочатку тест був написаний на мові Fortran (і зараз часто використовується ця версія тесту), існує і версія на мові C. Основний час тесту займає внутрішній цикл, що виконує типову для дій з матрицями операцію
Стандартна версія тесту оперує з матрицями 100 * 100, однак, є версії для матриць розмірами 300 * 300 і 1000 * 1000 з різними правилами оптимізації. Тест LINPACK досить добре векторизуется і распараллеливается на більшості систем.
Основний недолік тесту LINPACK - він дає мають сенс результати тільки для обчислень наведеного вище виду.
Проблеми порівняння результатів в MFLOPS Коли ми починаємо порівнювати різні обчислювальні системи за показником продуктивності, вказаним в MFLOPS, потрібно бути дуже обережними:
- не завжди ясно, як саме отримано наведене число (зазвичай це актуально для показників продуктивності, про яку йдеться виробниками обладнання);
- навіть якщо ясно, при виконанні якого тіста отримано значення продуктивності, необхідно враховувати, що тести написані на мовах високого рівня, і операційна система, компілятор і установки оптимізації компілятора можуть вплинути на результати в кілька разів;
- неоднозначна інтерпретація наведених результатів MFLOPS для багатопроцесорних систем - мені здається досить імовірним, що деякі виробники просто перемножують продуктивність MFLOPS для одного процесора на число процесорів і таким чином отримують результат.
Дмитро Ковригін, провідний спеціаліст фірми Еврика
Тел. 327-3343