Commit cb65ccd2 by Alan Mishchenko

Experiments with simulation.

parent eae04552
...@@ -154,7 +154,7 @@ void Gia_ParTestSimulate( Gia_Man_t * p, int nWords ) ...@@ -154,7 +154,7 @@ void Gia_ParTestSimulate( Gia_Man_t * p, int nWords )
Gia_ParTestSimulateInit( p ); Gia_ParTestSimulateInit( p );
Gia_ManForEachObj( p, pObj, i ) Gia_ManForEachObj( p, pObj, i )
Gia_ParTestSimulateObj( p, i ); Gia_ParTestSimulateObj( p, i );
Gia_ParComputeSignature( p, nWords ); printf( " " ); // Gia_ParComputeSignature( p, nWords ); printf( " " );
Gia_ParTestFree( p ); Gia_ParTestFree( p );
} }
...@@ -229,7 +229,7 @@ void * Gia_ParWorkerThread( void * pArg ) ...@@ -229,7 +229,7 @@ void * Gia_ParWorkerThread( void * pArg )
} }
assert( Counter != 0 ); assert( Counter != 0 );
assert( 0 ); assert( 0 );
return (void *)Counter; return NULL;
} }
void Gia_ParTestSimulate2( Gia_Man_t * p, int nWords, int nProcs ) void Gia_ParTestSimulate2( Gia_Man_t * p, int nWords, int nProcs )
{ {
...@@ -237,6 +237,7 @@ void Gia_ParTestSimulate2( Gia_Man_t * p, int nWords, int nProcs ) ...@@ -237,6 +237,7 @@ void Gia_ParTestSimulate2( Gia_Man_t * p, int nWords, int nProcs )
Par_ThData_t ThData[PAR_THR_MAX]; Par_ThData_t ThData[PAR_THR_MAX];
Vec_Int_t * vStack, * vFanins; Vec_Int_t * vStack, * vFanins;
int i, k, iFan, status, nCountFanins; int i, k, iFan, status, nCountFanins;
assert( nProcs <= PAR_THR_MAX );
Gia_ManRandom( 1 ); Gia_ManRandom( 1 );
Gia_ParTestAlloc( p, nWords ); Gia_ParTestAlloc( p, nWords );
Gia_ParTestSimulateInit( p ); Gia_ParTestSimulateInit( p );
...@@ -249,7 +250,6 @@ void Gia_ParTestSimulate2( Gia_Man_t * p, int nWords, int nProcs ) ...@@ -249,7 +250,6 @@ void Gia_ParTestSimulate2( Gia_Man_t * p, int nWords, int nProcs )
vFanins = Gia_ManCreateFaninCounts( p ); vFanins = Gia_ManCreateFaninCounts( p );
nCountFanins = Vec_IntSum(vFanins); nCountFanins = Vec_IntSum(vFanins);
// start the threads // start the threads
assert( nProcs <= PAR_THR_MAX );
for ( i = 0; i < nProcs; i++ ) for ( i = 0; i < nProcs; i++ )
{ {
ThData[i].p = p; ThData[i].p = p;
...@@ -310,7 +310,7 @@ void Gia_ParTestSimulate2( Gia_Man_t * p, int nWords, int nProcs ) ...@@ -310,7 +310,7 @@ void Gia_ParTestSimulate2( Gia_Man_t * p, int nWords, int nProcs )
Gia_ManStaticFanoutStop( p ); Gia_ManStaticFanoutStop( p );
Vec_IntFree( vStack ); Vec_IntFree( vStack );
Vec_IntFree( vFanins ); Vec_IntFree( vFanins );
Gia_ParComputeSignature( p, nWords ); printf( " " ); // Gia_ParComputeSignature( p, nWords ); printf( " " );
Gia_ParTestFree( p ); Gia_ParTestFree( p );
} }
...@@ -328,11 +328,14 @@ void Gia_ParTestSimulate2( Gia_Man_t * p, int nWords, int nProcs ) ...@@ -328,11 +328,14 @@ void Gia_ParTestSimulate2( Gia_Man_t * p, int nWords, int nProcs )
***********************************************************************/ ***********************************************************************/
void Gia_ParTest( Gia_Man_t * p, int nWords, int nProcs ) void Gia_ParTest( Gia_Man_t * p, int nWords, int nProcs )
{ {
abctime clk = Abc_Clock(); abctime clk;
printf( "Trying with %d words and %d procs.\n", nWords, nProcs ); printf( "Trying with %d words and %d threads.\n", nWords, nProcs );
printf( "Memory usage = %.2f MB\n", (8.0*nWords*Gia_ManObjNum(p))/(1<<20) ); printf( "Memory usage = %.2f MB\n", (8.0*nWords*Gia_ManObjNum(p))/(1<<20) );
clk = Abc_Clock();
Gia_ParTestSimulate2( p, nWords, nProcs ); Gia_ParTestSimulate2( p, nWords, nProcs );
Abc_PrintTime( 1, "Time", Abc_Clock() - clk ); Abc_PrintTime( 1, "Time", Abc_Clock() - clk );
clk = Abc_Clock(); clk = Abc_Clock();
Gia_ParTestSimulate( p, nWords ); Gia_ParTestSimulate( p, nWords );
Abc_PrintTime( 1, "Time", Abc_Clock() - clk ); Abc_PrintTime( 1, "Time", Abc_Clock() - clk );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment