Skocz do zawartości
xacti

Skrypt W C++ Mocno Obciazajacy Procesor

Rekomendowane odpowiedzi

siemka. mam prosbe . moglby ktos podac jakis malutki skrypcik w c++, ktory obciazyl kazdy procesor w 100% ?

probowalem z petla i zmiennymi a,b,c, ktore sie mnozyly, dodawaly, dzielily, odejmowaly , ale nie na wszystkich procesorach obciazenie wynosi 100% .

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

zrobilem juz petle jedna, jednak najdziwniejsze jest to ze program szybciej sie wykonuje na Athlonie 1.66GHz niz na Centrino Mobile p4 1.73GHz .

 

(program polega na tym, ze liczy czas wykonywania sie petli - tak wiem, strasznie zlozone ;) )

 

no i na antku wynik to 9 minut 28 sekund

a na tym p4 mobile 32 min 12 sekund. ... :mur:

 

dlatego poszukuje jakiegos skryptu ktory DOBRZE i MOCNO obciazy procesor .. :(

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

sproboje potem ;)

 

moze dam wam linka do mojego "programu" . By moze ktos odpalil i podal wynik . sam juz nie wiem czemu tak beznadziejnie on dziala :(

Kodu programu niestety jeszcze przez 2 dni nie bede mial, poniewaz jest on na innym dysku - 80gb . Moja plyta na slot 1 takich wielkosci nie obsluguje ;)

 

http://www.badongo.net/file/2476824

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

a moglby mi ktos wytlumaczyc czemu wykonywanie petli na moim starym athloniku trwalo 9 minut a na mobilnym p4 32 minuty? :|

czy to mozliwe, ze system dawal jakos programowi nizszy priorytet?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

eeee . tak na pewno . ;)

 

na p3 600@800 ten program konczy prace w okolo 26 minut, wiec cos jednak jest BARDZO nie tak ;)

 

moglby go ktos odpalic na swoim kompie?

wynik to:

0 - godziny

0 - minuty

0 - sekundy .

 

jak bede mial dostep do kodu zrodlowego to poprawie jeszcze jeden blad zwiazany z wyswietlaniem godzin - minuty i sekundy sa ok . :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

a dokladniej? ; > mi chodzi o to, zeby nie byla to petla nieskonczona, lecz skonczona ;) np po 512 000 przejsciach :P

 

Jakim poleceniem robi sie, zeby program mial najwyzszy priorytet? Nie chce, zeby trzeba bylo to ustawiac samodzielnie - po prostu odpalam program i juz ; >

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

a dokladniej? ; > mi chodzi o to, zeby nie byla to petla nieskonczona, lecz skonczona ;) np po 512 000 przejsciach :P

Jak juz chcesz takie "rowne" liczby stosowac to 524288 ;]

 

Jakim poleceniem robi sie, zeby program mial najwyzszy priorytet? Nie chce, zeby trzeba bylo to ustawiac samodzielnie - po prostu odpalam program i juz ; >

#include <windows.h>...SetPriorityClass( GetCurrentProcess(), REALTIME_PRIORITY_CLASS );

Radze ustawic najpierw jakas krotsza petle.. ja zrobilem sobie taka co trwa ~8s, przez ten czas Winamp sie zapetlil, a kursor myszki nie odpowiadal na wysylane do niego bodzce ;]

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

moja petla to mniej wiecej

a*a

a/b

a+c/b (czy jakos tak ;) )

 

i do tego cos tam z if(ab|bb) (tego akurat nie pamietam wogole i nie znam, bo mi kumpel to napisal, a ja kodu na razie nie mam :P)

 

wiec chyba zostawie a*a

i to IF

i zrobie ten priorytet nie na realtime tylko na high, chyba ze lepiej na realtime - poradzcie ;)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Heh, u mnie ustawienie High spowodowało praktycznie zatrzymanie Winampa i kosmiczne spowolnienie systemu - pulpit nie był odświeżany, myszka ledwo chodziła. Gdyby nie Menedżer zadań na High, to nie odzyskałbym kontroli nad systemem aż do zakończenia obliczeń.

Przy czym użycie procka pokazywało 100%, natomiast samego programu w okolicach 40%. Możliwe jednak, że Menedżer nie był w stanie aktualizować danych przy takim obciążeniu.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Może liczby pierwsze w mało wyrafinowany sposób:

 

#pragma hdrstop#include <stdio.h>#include <conio.h>#include <time.h>#define Step 2#pragma argsusedint key(){   printf("\n\nNacisnij dowolny klawisz!");   getch();   return 0;}int Prime(unsigned int Number) {    unsigned int Divisor = 3;    while (Divisor * Divisor <= Number && Number % Divisor) Divisor += Step;    if (Divisor * Divisor > Number) return 1; else return 0; } int main(int argc, char **argv) {    int Rl = 0, Ru = 100;      printf("Podaj dolny zakres: ");   scanf("%d", &Rl);      printf("Podaj gorny zakres: ");   scanf("%d", &Ru);      if (Rl > Ru || Rl < 0 || Ru < 0) {	  printf("\n\nNieprawidlowy zakres!!!\n\n");	  key();	  return 0;   }      printf("\nZakres: %d - %d\n\n", Rl, Ru);      if (Ru < 2) {	  printf("Znaleziono: 0");	  key();	  return 0;   }      if (Ru == 2) {	  printf("Znaleziono: 1 [2]");	  key();	  return 0;   }   printf("Poczatek algorytmu...\n\n");	   time_t t1, t2;   t1 = time(NULL);	   unsigned int Number, Count = 0;      if (Rl == 2) {Rl++; Count = 1;}      if (Rl != 2)	  if (!(Rl % 2)) Rl++;	     for (Number = Rl; Number <= Ru; Number += Step) 		if (Prime(Number)) Count++;		   t2 = time(NULL);	   printf("Koniec algorytmu...\n\n");   printf("Znaleziono: %d\n\n", Count);   printf("Czas obliczen: %d [s]\n\n", t2 - t1);   key();   return 0;    }

Kod możesz zmodyfikować wedle gustu.

 

Wersja skompilowana: primes.zip

 

 

Albo FFT. Gdzieś kod mi się zapodział :(

Edytowane przez Dj_AnT

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

no to juz nie wiem co zrobic by program obciazal procesor w 100% i od razu obciazal go roznymi obliczeniami ...

jakies pomysly? :(

A do czego Ci to potrzebne w ogole ? do czego zmierzasz tym ?

 

Nie jestem pewien, ale jesli programu nie napisze sie specjalnie pod multicore to bedzie on chodzil tylko na jednym rdzeniu, jesli posiadamy ich wiecej.. stad pewnie niepelne obciazenie na nich. Tak jest z SuperPI na przyklad.. liczy tylko jeden rdzen.. ale juz specjalna wersje Prime95 mozna odpalic na wszystkich rdzeniach, on dosc dobrze obciaza procka.. zapuszczenie na wszystkich rdzeniach z Realtime mogloby byc ciezkie :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

ten program zrobilem w wolnym czasie - nudzilo mi sie ;) z zalozenia mial imitowac program obliczajacy wydajnosc procka :lol2: . potem mnie cos podkusilo i trosze dodalem obliczen . ;)

 

teraz wlasnie chce dodac cos, zeby na maxa wszystki procki obciazal ;) (jednordzeniowe wystarczy :P )

 

wiec uzyc tego co napisal Dj_AnT ?

czy moze cos prostszego? ;)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

teraz wlasnie chce dodac cos, zeby na maxa wszystki procki obciazal ;) (jednordzeniowe wystarczy :P )

No to jednordzeniowe masz juz zalatwione.

 

no wlasnie zauwazylem :( obciaza takiego p4 w max 50-60% :( jakas rada? ;)

Procki z HT przeciez sa tylko przez system widziane jako dwujajowe.. fizycznie jednak takie nie sa (pomimo tego, ze nienajgorzej symuluja dwurdzeniowosc), wiec ... patrz wyzej.

Zabicie wielordzeniowych prockow (badz z HT) tez jest mozliwe, ale to juz wyzsza szkola jazdy. Trzeba by pobrac ile logicznych jednostek mamy w systemie i na kazdej z nich zapuscic watek, ktory robi mniej wiecej to samo, co Twoja aplikacja teraz. Do tego Realtime i da sie poskromic nawet C2D ;] Zamiast watkow mozna tez spawnowac kolejne procesy (kazdy na swoim "wlasnym" rdzeniu), ale to tez troche zabawy. Nie sadze jednak, czy chce Ci sie w to bawic.. jak na poczatkujacego to zadanie jest raczej ambitne.

 

Jak chcesz koniecznie obciazyc mozliwie duzo to zapusc Prime'a tak jak pisalem wczesniej, a jesli tutaj chodzi o ambicje i chcesz zrobic cos w tym stylu sam to milej nauki swiata watkow i/lub procesow :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...