|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: May 2001
Messaggi: 250
|
P!!! + VELOCE DI P4
stamattina e' emerso quello che per me e' un grosso problema e devo dare
chiarimenti ai miei superiori... - in Marzo 2001 abbiamo ricevuto un PC avente le seguenti caratteristiche: - CPU Pentium III 1000MHz - SDRAM 256Mb 133 - HD 20 Gb 7200 IDE su slot estraibile ATA 66 - SysOp Win 2K ( PC assemblato ) - in Novembre 2001 abbiamo ricevuto un PC avente le seguenti caratteristiche: - CPU Pentium IV 1.6 GHz - SDRAM 640Mb (128Mb 133Mhz + 512 di espansione spero sempre a 133MHz) - HD 20 Gb 7200 IDE ultra ATA 100 su slot estraibile uda 66/100 - SysOp Win 2K ( HP VECTRA VL 420 P4-1600 ... 5756t ) Credo che il secondo PC dovrebbe stracciare il primo in quanto a prestazioni, invece in seguito ad un test relativo ad un algoritmo di puro calcolo ci e' sembrato che fosse il contrario e anche di parecchio. Abbiamo quindi effettuato il medesimo processo (stesso programma, stessi dati di partenza, stessi risultati finali) nei due modelli di PC nella stesso scenario (senza ScreenSaver e con gli stessi processi di sistema attivi). Risultati: - PIII -> 3'50" circa - PIV -> 5'10" circa (40 % in piu' rispetto al tempo del PIII) Pensando ad un overclock del PIII abbiamo effettuato la medesima prova su di un notebook DELL di un ns. collaboratore: - PIII 1000 - 256Mb - 40Gb HD - Win 2K Risultato: -> 3'40" circa Come si spiega tutto questo? Forse i PC marcati HP non hanno prestazioni confrontabili con gli assemblati? I miei superiori mi hanno chiesto chiarimenti su questa situazione ed io non sono in grado di fornirgliele.
__________________
DELL Precision T3500-RADEON 6970-DELL U2412M |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Tutto si spiega con le scarse prestazione floating point del P4...e, se il programma da voi fatto usa intensivamente la memoria, al fatto che il P4 abbinato alla SDRAM PC133 ottiene un netto peggioramento delle prestazioni in ogni ambito...
In sostanza...mai comprare un sistema P4 abbinato alle SDRAM... Pena prestazioni bassime in ogni campo... Probabilmente il programma mette in crisi l'architettura del P4...per la precisone l'unità di branch prediction (se ci sono molti salti condizionati) provocando spesso lo stallo della pipeline e il relativo svuotamento che implica un tempo di 20 cicli di clock prima di completare una nuova istruzione... Non è che potresti postare questo programma ? Almeno potremmo fare qualche prova....ad esempio con un P4 con Rambus... |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: May 2001
Messaggi: 250
|
potresti spiegarmi in maniera un po' più semplice?
thanks in advance ![]()
__________________
DELL Precision T3500-RADEON 6970-DELL U2412M |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Che genere di calcolo gli hai fatto fare ?
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Nov 2001
Messaggi: 445
|
Questa volta eviterò di fare del facile sarcasmo...
Chi è che ha deciso di cambiare dei P3 1GHz con dei P4 1,6GHz con SDRAM? mi piacerebbe saperlo... ![]() Ti posso dire cmq che è PERFETTAMENTE NORMALE che il tuo nuovo pc sia più lento in alcune applicazioni, anzi... in MOLTE applicazioni, soprattutto quando si usano programmi per office automation tipo gestione database, excel, ecc... Che tipo di programma usate? ... Dove sono finiti i vecchi coppy sostituiti? ![]() Chi è il vostro CED? ![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: May 2001
Messaggi: 250
|
nella della ditta per la quale lavoro ho l'incarico della gestione del parco
PC (oltre che di scrittura software C++) ed ultimamente ho acquistato quelli che per noi sono i primi PC basati sui Pentium 4. Da quando abbiamo cominciato a farci girare i software di nostra produzione (molto pesanti) abbiamo sempre avuto il sospetto che i nuovi PC fossero piu' lenti di quelli vecchi e cosi' ieri mi sono deciso a fare un programmino di test che sfrutta solamente la capacita' di calcolo del processore (allego il sorgente, se non ci credete...). Il programmino e' diviso in due: prima effettua una prova basandosi su calcoli interi, in un secondo tempo utilizza anche dei calcoli in virgola mobile. Ho fatto girare il programmino in quattro configurazioni di PC: (tralascio l'HD che tanto non ha influenza) - P4 1.6 GHz - 640 Mb Ram 133MHz - Win 2K Professional - PIII 1.0 GHz - 256 Mb Ram 133MHz - Win 2K Professional - PIII 800 MHz - 256 Mb Ram 133MHz - Win NT 4.0 Server SP5 - PIII 600 MHz - 128 Mb Ram 133MHz - Win NT 4.0 Workstation SP5 Per quanto riguarda la parte intera i risultati sono quelli attesi (che ometto, tanto non hanno nulla di sorprendente) riporto la classifica relativa ai calcoli in virgola mobile: Primo classificato: PIII 1.0 GHz con un tempo nettamente inferiore ai 30" (24 di media) Secondo classificato: PIII 800 MHz con un tempo tra i 30 e i 35 sec. (mai sceso sotto i 31 sec) Terzo classificato: PIII 600 MHz con un tempo medio di 44" (42 - 46 come estremi) Quarto classificato: P4 1.6 GHz con un tempo sempre superiore ai 45" (mai sceso sotto i 47") Sottolineo che nella prova in virgola mobile il PIII 600 ha superato il P4 1.6! E il P4 e' fuori dal podio ... Allego a questa anche l'eseguibile, se volete fare voi la prova sui vostri pc ... (le dimensioni dell'eseguibile si giustificano dall'uso di MFC incluse e dal fatto di essere in debug)
__________________
DELL Precision T3500-RADEON 6970-DELL U2412M |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Visto che mi sembra che tu abbia usato MFC metti la priorità al massimo ed otterrai valori + costanti...
SetThreadPriority(THREAD_PRIORITY_TIME_CRITICAL); Da inserire nella classe derivata da CWinApp... Posta semmai l'eseguibile generato dalla release almeno riesci a stare nei 24k dell'allegato... |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Jan 2002
Messaggi: 10337
|
Scusa ma non vedo l' allegato!!!
![]() ![]() |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: May 2001
Messaggi: 250
|
scusate ma l'allegato non mi sta...
// speed.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "speed.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // The one and only application object CWinApp theApp; using namespace std; int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) { int nRetCode = 0; // initialize MFC and print and error on failure if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0)) { // TODO: change error code to suit your needs cerr << _T("Fatal Error: MFC initialization failed") << endl; nRetCode = 1; } else { // TODO: code your application's behavior here. CString strHello; strHello.LoadString(IDS_HELLO); CTime startTime; CTime endTime; CTimeSpan elapsedTime; CString s; unsigned long int jj; unsigned long int LimitInt = 20; unsigned long int LimitDec = 10; cout << endl; for ( jj=0; jj<LimitInt-1; jj++) cout << "#"; cout << " - Fase intera " << endl; unsigned int ii; double d1,d2; startTime = CTime::GetCurrentTime(); for ( jj=0; jj<LimitInt; jj++) { for (unsigned long int i=0; i<6500 ; i++) { switch ( i % 800) { case 0: cout << "|"; break; case 200: cout << "/"; break; case 400: cout << "-"; break; case 600: cout << "\\"; break; } for (unsigned long int j=0; j<65000 ; j++) { ii=j-i; } cout << "\r" ; } for (ii = 0; ii < jj ; ii++) cout << "#"; cout << "\r" ; } cout << endl; endTime = CTime::GetCurrentTime(); elapsedTime = endTime - startTime; s = elapsedTime.Format( "Total days: %D, hours: %H, mins: %M, secs: %S" ); cout << (LPCTSTR)s << endl; cout << endl; for ( jj=0; jj<LimitDec-1; jj++) cout << "#"; cout << " - Fase decimale " << endl; startTime = CTime::GetCurrentTime(); for ( jj=0; jj<LimitDec; jj++) { for (unsigned long int i=0; i<6500 ; i++) { switch ( i % 800) { case 0: cout << "|"; break; case 200: cout << "/"; break; case 400: cout << "-"; break; case 600: cout << "\\"; break; } for (unsigned long int j=0; j<6500 ; j++) { d1=j; d2=d1*ii; } cout << "\r" ; } for (ii = 0; ii < jj ; ii++) cout << "#"; cout << "\r" ; } cout << endl; endTime = CTime::GetCurrentTime(); elapsedTime = endTime - startTime; s = elapsedTime.Format( "Total days: %D, hours: %H, mins: %M, secs: %S" ); cout << (LPCTSTR)s << endl; } return nRetCode; }
__________________
DELL Precision T3500-RADEON 6970-DELL U2412M |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Vorrei farti notare che è tutto un problema di debug information...
Se crei la versione release vedrai che tutto milgiora...anche per il P4...fai conto che faccio 2 secondi sugli interi e 0 !!! sui floating point... |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Se vuoi provare il mio bench...almeno è un po' più lungo nella versione release...
Con il mio Athlon 1000 faccio 1795 sugli interi e 6375 sui floating point... Ti faccio vedere i calcoli che fa : Questo è quello sui floating-point e calcola il frattale di julia (anche se l'ho un po' modificato)... double CSysbenchDlg::julia() { register double xmin, xmax, ymin, ymax, fact=1.0; register double x, y, x0, y0, xp, yp, const_scr=1.0; register double deltax, deltay, p, q, ya, r, xkp1, ykp1; register int npix=100000, npiy=100000, kcolor; register int k, np, nq, ipen; struct _timeb t1; struct _timeb t2; p = 100000; q = 100000; xmin = 100000; xmax = 1; ymin = 100000; ymax = 1; kcolor = 10; m_pr.SetPos(0); if(fact>=1.0 || fact <=0.0) fact = 1.0; else { npix = (int)(npix*fact); npiy = (int)(npiy*fact); } deltax = (xmax-xmin)/(double)(npix-1); deltay = (ymax-ymin)/(double)(npiy-1); _ftime(&t1); for (np=0; np<=npix-1; np++) { x0 = xmin + (double)np*deltax; for (nq=0; nq<=npiy-1; nq++) { y0 = ymin + (double)nq*deltay; x = x0; y = y0; k = 0; do { xkp1 = (x+y)*(x-y) + p; ya = x*y; ykp1 = ya + ya + q; r = xkp1*xkp1 + ykp1*ykp1; k++; if (r >= kcolor) { ipen = 30 + k; xp = const_scr*(double)np; yp = (double)nq; } if (k == kcolor) { ipen = 1; xp = const_scr*(double)np; yp = (double)nq; } x = xkp1; y = ykp1; } while (r <= kcolor && k<=kcolor); } if(((np+1)%100) == 0) m_pr.SetPos(m_pr.GetPos()+10); if(np==999) break; } _ftime(&t2); return (double)((t2.time - t1.time)*1000 + t2.millitm - t1.millitm); } Quello sugli interi è un po' più semplice, anche se valuta abbastanza bene un po' tutto della ALU... double CSysbenchDlg::fatt() { register unsigned int num, f, i; struct _timeb t1; struct _timeb t2; m_pr.SetPos(0); _ftime(&t1); for(num=1; num<=20000; num++) { f=1; for(i=num; i>1; i--) f*=i; for(i=num; i>1; i--) f/=i; f=0; for(i=num; i>1; i--) f+=i; for(i=num; i>1; i--) f-=i; if((num%2000)==0)m_pr.SetPos(m_pr.GetPos()+10); } _ftime(&t2); return (double)((t2.time - t1.time)*1000 + t2.millitm - t1.millitm); } |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Jan 2002
Messaggi: 10337
|
Io 1.3 e qualcosa sugli interi e 3.2 sui floating
|
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: May 2001
Messaggi: 250
|
interi 2148
floating 5438 pIV 1700 abit th72 256mb rimm ecc samsung proverò a testarlo su p4+dimm pc133 e dimm pc266 domani.. ![]()
__________________
DELL Precision T3500-RADEON 6970-DELL U2412M |
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Prova più che altro sul P3
![]() |
![]() |
![]() |
![]() |
#15 | |
Senior Member
Iscritto dal: Oct 2001
Città: Arco (TN)
Messaggi: 122
|
Quote:
![]() ![]() il P4 ha un rendimento velocità/frequenza NETTAMENTE inferiore ad un PIII. un P4 1.4GHz va circa quanto un P3 1GHz.
__________________
Slackware Linux powered |
|
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
In generale la differenza è minore....ma su programmi che utilizzano la sola FPU e non MMX, SSE o SSE2 la differenza aumenta un po'...
|
![]() |
![]() |
![]() |
#17 | |
Senior Member
Iscritto dal: Oct 2001
Città: Arco (TN)
Messaggi: 122
|
Quote:
__________________
Slackware Linux powered |
|
![]() |
![]() |
![]() |
#18 | |
Senior Member
Iscritto dal: Nov 2001
Messaggi: 445
|
Quote:
www.intel.com ![]() ![]() ![]() |
|
![]() |
![]() |
![]() |
#19 |
Bannato
Iscritto dal: Jan 2002
Città: Torino
Messaggi: 1005
|
E' colpa della Ram!
Guarda che è colpa della Ram perchè non passi alle DDR??
ciao! |
![]() |
![]() |
![]() |
#20 | |
Senior Member
Iscritto dal: May 2001
Messaggi: 634
|
Quote:
thunderbird 1400mhz 256mb ram@133 abit kt7a interi:2438 float:8467
__________________
Però, va forte quest'auto! |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 01:11.