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 и т.д. Очень бы хотелось добавить проддержку процов Интел.
Одним словом, делать есть что.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения