Hi all!
We are doing some research on transactional memory. We need to run all
the three HTM protocols(EE, LL and EE) on GEMS2.1+SIMICS3. The
benchmarks we use are come from STAMP, Splash-2 and microbenchmarks in
GEMS. All the benchmarks can pass EE protocols such as
EagerCD_EagerVM_Base_NoPred etc. However some benchmarks such as
Barnes, Genome, and Btree can not pass LL or EL protocols even the
most basic protocol----LazyCD_LazyVM_Base. These failed benchmarks
meet similar phenomenon that simulations may be hanged after two
functions in slave function:
tm_bind_to_cabinet(id+1);
Barrier_breaking(&local_sense, id, num_p);
To make things clear, I use Btree for example. After a simulation is
hanged, the output to monitor is like:
... ...
4 :local_sense = 1
binding to cabinet 6
3 :ret = 0, count=3
5 :local_sense = 1
binding to cabinet 7
4 :mutex locked ...
6 :local_sense = 1
binding to cabinet 8
4 :ret = 0, count=4
7 :local_sense = 1
binding to cabinet 9
6 :mutex locked ...
8 :local_sense = 1
binding to cabinet 10
... ...
5 :ret = 0, count=14
6 :mutex unlocked ...
1 :mutex locked ...
1 :ret = 1, count=15
5 :mutex unlocked ...
1 :mutex unlocked ...
1 :Before SIMICS_BREAK_EXECUTION, ret = 1, count= 15 .
(The simulation is hanged here.)
The correspond visual file is looked like:
... ...
% $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 145957
% $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 150000
% $ $ $ $ $ $ $ $ $ $ | $ $ $ $ 151192
% $ $ $ $ $ $ $ $ $ $ C $ $ $ $ 151193
% $ $ $ $ $ $ $ $ $ $ % $ $ $ $ 151195
% $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 151290
% $ $ $ $ $ $ $ $ $ $ | $ $ $ $ 151725
% $ $ $ $ $ $ $ $ $ $ C $ $ $ $ 151726
% $ $ $ $ $ $ $ $ $ $ % $ $ $ $ 151726 <=====may be hanged here
% $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 152827
% $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 160000
% $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 170000
% $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 180000
% $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 190000
... ... (The following pattern is the same)
% $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 2670000
% $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 2680000
% $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 2690000
% $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 2700000
% $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 2710000
(The simulation is aborted now.)
I think the reason is that the failed benchmarks meet the same
problem. Could you give me some advise to solve the problem?
Thank you !
I am looking forward to your response!
Best regards!
Ritchie Wang
20100513
|