PDA

View Full Version : Problemone


formatter
04-02-2002, 13:44
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.

cionci
04-02-2002, 13:53
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...

formatter
04-02-2002, 13:57
potresti spiegarmi in maniera un po' più semplice?
thanks in advance ;)

cionci
04-02-2002, 13:59
Che genere di calcolo gli hai fatto fare ?

ev8
04-02-2002, 14:11
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... :rolleyes: nc...
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? :D
Chi è il vostro CED? :D

formatter
05-02-2002, 10:11
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)

cionci
05-02-2002, 10:40
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...

Vash_85
05-02-2002, 10:41
Scusa ma non vedo l' allegato!!!:p :p

formatter
05-02-2002, 10:49
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;
}

cionci
05-02-2002, 11:12
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...

cionci
05-02-2002, 11:33
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);

}

Vash_85
05-02-2002, 11:42
Io 1.3 e qualcosa sugli interi e 3.2 sui floating

formatter
05-02-2002, 19:38
interi 2148
floating 5438

pIV 1700
abit th72
256mb rimm ecc samsung

proverò a testarlo su p4+dimm pc133 e dimm pc266 domani.. ;)

cionci
05-02-2002, 19:42
Prova più che altro sul P3 ;)

Mistura Celeste
05-02-2002, 19:47
Originariamente inviato da formatter
[B]potresti spiegarmi in maniera un po' più semplice?
thanks in advance ;)
se avessi comprato un Athlon XP non avresti fatto quella fig di m con i tuoi superiori :D ;)
il P4 ha un rendimento velocità/frequenza NETTAMENTE inferiore ad un PIII. un P4 1.4GHz va circa quanto un P3 1GHz.

cionci
05-02-2002, 19:49
In generale la differenza è minore....ma su programmi che utilizzano la sola FPU e non MMX, SSE o SSE2 la differenza aumenta un po'...

Mistura Celeste
05-02-2002, 20:00
Originariamente inviato da cionci
[B]In generale la differenza è minore....ma su programmi che utilizzano la sola FPU e non MMX, SSE o SSE2 la differenza aumenta un po'...
esattamente, ma cmq di programmi che sfruttano sse2 ce ne sono veramente pochi

ev8
05-02-2002, 20:17
Originariamente inviato da Mistura Celeste
[B]
esattamente, ma cmq di programmi che sfruttano sse2 ce ne sono veramente pochi
Esistono compilatori che vettorizzano automaticamente anche per sse2 (kiaro ke si scende di precisione), ma sono tutti PAY! :
www.intel.com
:D:D:D

dado82
06-02-2002, 05:42
Guarda che è colpa della Ram perchè non passi alle DDR??
ciao!

spinbird
06-02-2002, 10:11
Originariamente inviato da formatter
[B]interi 2148
floating 5438

pIV 1700
abit th72
256mb rimm ecc samsung

proverò a testarlo su p4+dimm pc133 e dimm pc266 domani.. ;)
ho fatto anche io il test su:

thunderbird 1400mhz
256mb ram@133
abit kt7a

interi:2438
float:8467

Rizlo+
04-03-2002, 13:07
Originariamente inviato da formatter
[B]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.

Aggiorna il BIOS del VL420 e poi riprova a fare il test! fidati!
cmq tutti i discorsi fatti sotto sono validi...

mahrius
04-03-2002, 19:31
Originariamente inviato da formatter
[B]interi 2148
floating 5438

ho fatto anche io il test con i seguenti risultati:
interi 2750
floating... 9769

che significa esattamente? Sarei curioso di ricevere maggiori informazioni in merito... grazie in anticipo mahrius;) ;) ;)

cionci
05-03-2002, 00:07
Più i valori sono alti e più il risultato è migliore...

gaviclau
05-03-2002, 03:40
Ad ogni modo , sembra un 'errore' comune a molte aziende .................... anche dove lavoro io , presto sostituiranno i PIII con dei P4 ................. ovviamente , nelle configurazioni standard da ufficio le prestazioni saranno minori , ma andatelo a spiegare voi al Resp.Ced ....................

Mentre in qualche ufficio ( tipo il mio buhaaaa !!!!! ) ci sono ancora dei P233 MMX , che comunque per Internet vanno più che bene ........

bocioman
05-03-2002, 10:05
Ragazzi ho provato il cpubench di cionci che ha allegato nella sua risposta ed ho ottenuto un risultato di 810 sugli interi e poi 5500 sui floating e posseggo un pII 350@466 con 128 mb ram pc133.
Come mai con il mio pc schifoso ottengo risutati migliori o simili ai vostri supersistemi?

solvet
05-03-2002, 10:46
ok ok. ho provato anch'io

XP 1900+@1826 Mhz su 8KHA+
Ram @174 Mhz

INT 3322
FP 11839

insomma sti PIV ogni giorno ne esce una nuova...
E pensare che ormai in generale nelle aziende e nelle ditte in genere ancora si pensa che ci sia solo Intel...Ho il PIII quando dovrò upgradare c'è il PIV...
quando non si pensa che la maggior parte dei lavori possono essere svolti da un mostriciattolo come un morgan.....
certo che intel l'ha fatta proprio grossa......
Abbinare il PIV alla comune sdram.......significa troncare di brutto l'intero progetto....
Infatti sappiamo che con le Rimm o le DDr i PIV non sono cattivi come processori.....Ma secondo me inferiori agli XP

mahrius
05-03-2002, 12:08
Originariamente inviato da cionci
[B]Più i valori sono alti e più il risultato è migliore...


ti ringrazio per le delucidazioni... a buon rendere :)
ciauzzzz mahrius

:D :D :D :D ;)

guest
05-03-2002, 17:43
Originariamente inviato da gaviclau
[B]Ad ogni modo , sembra un 'errore' comune a molte aziende .................... anche dove lavoro io , presto sostituiranno i PIII con dei P4 ................. ovviamente , nelle configurazioni standard da ufficio le prestazioni saranno minori , ma andatelo a spiegare voi al Resp.Ced ....................

Mentre in qualche ufficio ( tipo il mio buhaaaa !!!!! ) ci sono ancora dei P233 MMX , che comunque per Internet vanno più che bene ........

Beh perchè non ti fai passare i PIII ?

O almeno quello che rimarrà dal magna magna furioso dopo la sostituzione. Scene del tipo PIII completo a 150 €! chi lo vuole?
Di solito fanno così con i portatili, un mio amico se ne è portato a casa uno per poco + di 60 € e non è malaccio!
Tu provaci tentar non nuoce e poi se fate parte dell'azienda non vedo perchè dovrebbero dir di no!

Ciao ;)

Rizlo+
05-03-2002, 20:06
cmq l' HP VL420 ha un problema di gestione della CPU che è risolvibile solamente aggiornando il BIOS all'ultima versione (febbraio 2002). Non vorrei che le minori prestazioni siano dovute *anche* a questo...

gaviclau
05-03-2002, 22:37
Originariamente inviato da guest
[B]

Beh perchè non ti fai passare i PIII ?

O almeno quello che rimarrà dal magna magna furioso dopo la sostituzione. Scene del tipo PIII completo a 150 €! chi lo vuole?
Di solito fanno così con i portatili, un mio amico se ne è portato a casa uno per poco + di 60 € e non è malaccio!
Tu provaci tentar non nuoce e poi se fate parte dell'azienda non vedo perchè dovrebbero dir di no!

Ciao ;)

Non sempre accettano di farlo , dipende dalle convenzioni coi fornitori ( alcuni ritirano il vecchio PC permutandolo ) ..............

Comunque , quando sarà , chiederò ........................