Re: [Gems-users] Help: simulation is hanged in LL or EL protocols.


Date: Thu, 13 May 2010 09:39:32 -0500
From: Polina Dudnik <pdudnik@xxxxxxxxx>
Subject: Re: [Gems-users] Help: simulation is hanged in LL or EL protocols.
Another thing you should consider is turning on transactional debug output, because from the output you included it is not quite clear where exactly the benchmark is.

These functions:
 tm_bind_to_cabinet(id+1);
 Barrier_breaking(&local_sense, id, num_p);

are there to aid the simulation. Barrier_breaking ensures that all threads reach a barrier, and once they do it starts the simulation timing mode such that all threads start from the same point in the program execution. These two functions shouldn't give you a problem as they are not affected by what kind of TM system you are running. So, please rerun with TM debug turned on.

Polina


On Thu, May 13, 2010 at 9:35 AM, Polina Dudnik <pdudnik@xxxxxxxxx> wrote:
Hi Ritchie,

Did you read "Performance Pathologies in Hardware Transactional Memory"?

Base is a conflict resolution policy. There are also other conflict resolution policies in GEMS. Depending on which conflict resolution policy you use, you may see different behavior and performance. Please try other conflict resolution policies and see if that helps.

Polina



On Thu, May 13, 2010 at 9:14 AM, ritchie wang <ritchie.arch@xxxxxxxxx> wrote:
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
_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/" to your search.



[← Prev in Thread] Current Thread [Next in Thread→]