Member
Статус: Не в сети Регистрация: 24.07.2003 Откуда: Ukraine
Для програмистов.
Можете сами написать какой либо тест для проца и добавить его.
Формат базы данных тестов и результатов описан в README.TXT.
Например, Тест ALU:
Код:
function TestALU : Double; procedure Test; var i,j : Integer; begin {$N-} for i:=1 to 2000000 do begin for j:=2 to Round(Sqrt(i)) do if (i mod j=0) then break end; {$N+} end; var PriorityClass, Priority: Integer; st,st2 : TSystemTime; begin PriorityClass := GetPriorityClass(GetCurrentProcess); Priority := GetThreadPriority(GetCurrentThread); SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS); SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL); Sleep(10); GetSystemTime(st); Test; GetSystemTime(st2); SetThreadPriority(GetCurrentThread, Priority); SetPriorityClass(GetCurrentProcess, PriorityClass); Result := 2e7/( Longint(st2.wMilliseconds-st.wMilliseconds)+ Longint(st2.wSecond-st.wSecond)*1000+ Longint(st2.wMinute-st.wMinute)*60000+ Longint(st2.wHour-st.wHour)*3600000); end;
Member
Статус: Не в сети Регистрация: 07.10.2003 Откуда: Russia, Moscow
Сложный алгоритм для теста:
задача трех тел
имеется n материальных точек имеющих массу в поле гравитационного тяготения друг друга
имеются начальные координаты и вектора
просчитать положение через tttt времене
программа
for (int i=0;i<n;i++) {
ax = ay = az = 0;
for (int j=0;j<n;j++) {
if (j!=i) {
dx = Star[j].x - Star[i].x;
dy = Star[j].y - Star[i].y;
dz = Star[j].z - Star[i].z;
if (i>j) mr = Star[j].mass/(rr[j][i]);
else {
r2 = dx*dx + dy*dy + dz*dz;
rr[i][j] = r2 * sqrt(r2);
mr = Star[j].mass/(rr[i][j]);
}
ax += mr*dx;
ay += mr*dy;
az += mr*dz;
}
} // end of j
X1Star[i].x1 += Star[i].vx * deltaT + deltaT2 *ax;
X1Star[i].y1 += Star[i].vy * deltaT + deltaT2 *ay;
X1Star[i].z1 += Star[i].vz * deltaT + deltaT2 *az;
Star[i].vx += deltaT * ax;
Star[i].vy += deltaT * ay;
Star[i].vz += deltaT * az;
} // end of i
for (int ii=0;ii<n;ii++) {
Star[ii].x = X1Star[ii].x1;
Star[ii].y = X1Star[ii].y1;
Star[ii].z = X1Star[ii].z1;
}
} //end of k
Ticks = GetTickCount();
average = 1000000*(Ticks - Ticks0)/RefreshN;
draws++;
}
//<><><><><><><><><><><><><><><><><><>
надо задать начальные значения VXStar
результат в наносекундах - время одного цикла
зависит от компилятора
лучше создать еще один внешний цикл
Cel900 - 1100nc
Member
Статус: Не в сети Регистрация: 24.07.2003 Откуда: Ukraine
Друзья-оверклокеры!
Есть просьба ко всем, кто может, помочь мне в написании программы VBench, т.к. у нее есть недоработки, которые я не знаю, как устранить(множитель, FSB, напряжение).
Также был бы благодарен всем, кто поможет в создании бенчмарков(хотя бы идеями).
Advanced member
Статус: Не в сети Регистрация: 30.08.2003 Откуда: Санкт-Петербург
AMD K6-2+ 400Mhz/ASUS TX97-E/128MB RAM @ 66Mhz
ALU = 1490
Duron 1.3 = 3140
Athlon 1.1 = 2695
ALU + Cache = 1008
Duron 1.3 = 2928
Проц не детектится в первом окне Есть такая программа, как CrystalCPUID. Она поставляется с исходником. Рекомендую поискать и посмотреть. Очень поучительно!!! Там еще и исходник для определения FSB есть!
Результаты теста отображаются странно. Выбираю другой тест, а результат тот же!!!
_________________ {:€ дед в законе :-) нородный окодемег почетный пользователь OpenSuSE 11.3 Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad
Member
Статус: Не в сети Регистрация: 24.07.2003 Откуда: Ukraine
В четверг выложу на сайте последнюю версию + исходники (если кто попросит). Может к тому времени разберусь с множителями, FSB и т.д. Очень бы хотелось добавить проддержку процов Интел.
Одним словом, делать есть что.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения