[parsec-users] Errors running Parsec benchmarks in M5

Christian Bienia cbienia at CS.Princeton.EDU
Mon Aug 24 14:00:14 EDT 2009


Hi Ef,

 

Those three workloads look more or less like a random pick. I don't see any
commonalities other than that they all use pthreads.

 

I found a link where somebody described the the same issue (or is that
you?):

http://stackoverflow.com/questions/1320675/pthread-library-causes-program-to
-seg-fault-at-exit

 

I believe the pthread library is part of libc nowadays. One thing that comes
to my mind while reading the problem description above: You should not link
statically to libc. Even if it's linked statically, most modern
implementations use the dynamic loader to manually load additional modules
at runtime. If the libc versions do not match exactly, you have incompatible
data structures which can lead to very mysterious bugs (such as the one you
encountered). Unfortunately on modern systems it has become impossible to
reliably build statically linked binaries that work correctly. L

 

- Chris

 

 

From: parsec-users-bounces at lists.cs.princeton.edu
[mailto:parsec-users-bounces at lists.cs.princeton.edu] On Behalf Of ef
Sent: Monday, August 24, 2009 1:35 AM
To: PARSEC Users
Subject: Re: [parsec-users] Errors running Parsec benchmarks in M5

 

Hello,
I went ahead and built a non-pthread version of Swaptions and it ran with no
seg fault at the end. SO the issue is with the pthread library.

So the following benchmarks have this issue:
Fluidanimate
Canneal
and Swaptions

DO any of these share any sort of property that would cause this issue?


I am not that good of a googler and I am stuck, nor am i that experienced:

What should I do next?
1 Re-Build the pthead library? If so how? I need a package to rebuld into a
static library..any links on this would be great as I cant find any (I suck
at googling)

2. Do I need to add extra linking options or flags? I tried -mt I thought
that should fix it, eithier I am doing this incorrectly or its not the
issue:
http://www.camden.rutgers.edu/HELP/Documentation/Sun-compiler-docs/WS6/manua
ls/c++/prog_guide/Multithread.html


Thanks
EF

2009/8/22 Christian Bienia <cbienia at cs.princeton.edu>

Hi Ef,

 

I was mistaken concerning disabling error checking. I confused swaptions
with blackscholes where error checking is optional.

 

I have no idea why the programs crash at the end of main(). I'd guess it's
some sort of library issue, but I have no idea how to debug that.

 

- Chris

 

 

From: parsec-users-bounces at lists.cs.princeton.edu
[mailto:parsec-users-bounces at lists.cs.princeton.edu] On Behalf Of ef
Sent: Saturday, August 22, 2009 1:20 AM


To: PARSEC Users
Subject: Re: [parsec-users] Errors running Parsec benchmarks in M5

 

Hello,

The flush technique works it solved that problem. However now I am dealing
wiith this issue:
Swaptions now issues a segmentation fault on exit.

Now i have two programs that seg fault upon exit of main. (Fluid Animate
also)

Im looking into:
http://www.unix.com/high-level-programming/59634-c-segmentation-fault-exit-m
ain-2.html

That might be the issue. Do you have any ideas?

Also you mentioned that I can disable error checking on swaptions? I glanced
through the code I have no clue how to do that....Is it a flag or are you
reffering to simply removing of the for loop that prints the std of error.

Thanks

EF




2009/8/21 Christian Bienia <cbienia at cs.princeton.edu>

Ef,

 

It might be that you only simulate until the program terminates and not any
further. If your operating system uses asynchronous output by default then
the text output created by the program is still in the buffer and has to be
flushed. So it has been written but the OS hasn't displayed it yet.

 

To force the OS to flush all output buffers before the program exits simply
insert an "fflush(NULL);" after the last printf statement. Chances are
you'll then see all output correctly.

 

- Chris

 

From: parsec-users-bounces at lists.cs.princeton.edu
[mailto:parsec-users-bounces at lists.cs.princeton.edu] On Behalf Of ef
Sent: Friday, August 21, 2009 9:52 PM 

To: PARSEC Users
Subject: Re: [parsec-users] Errors running Parsec benchmarks in M5

 

Hello,

Sorry for the confusion:
The difficulty with facesim is that I am running using M5, therefore in my
disk images need to supply a rcs file. It would of been easier and more
flexible if I can specify the input and output directory like the other
parsec benchmarks. But I can still manage.



As for swaptions there is an error, sorry for the lack of clarity:
There should be 16 swaptions but this is the exact output:

PARSEC Benchmark Suite Version 2.1
Number of Simulations: 5000,  Number of threads: 4 Number of swaptions: 16
Swaption0: [SwaptionPrice: 0.0000234735 StdError: 0.0000083599] 
Swaption1: [SwaptionPrice: 0.0000234735 StdError: 0.0000083599] 
Swaption2: [SwaptionPrice: 0.0000234735 StdError: 0.0000083599] 
Swaption3: [SwaptionPrice: 0.0000234735 StdError: 0.0000083599] 
Swaption4: [SwaptionPrice: 0.0000234735 StdError: 0.0000083599] 
Swaption5: [SwaptionPrice: 0.0000234735 StdError: 0.0000083599] 
Swaption6: [SwaptionPrice: 0.0000234735 StdError: 0.0000083599] 
Swaption7: [SwaptionPrice: 0.0000234735 StdError: 0.0000083599] 
Swa


Not sure whats going on here....The program exit while typing "Swa". Very
strange.


Thanks
EF

2009/8/21 Christian Bienia <cbienia at cs.princeton.edu>

Ef,

 

If I remember correctly facesim automatically reads and writes all inputs
and outputs relative to the current directory. So simply run the program
from whatever directory you want to use. Parsecmgmt does that automatically
for you.

 

The output of blackscholes looks good, the errors are about what you can be
expected from varying floating-point implementations. Don't worry about ti.
It's normal that fp output varies a little on different outputs because fp
calculations have to round numbers. You can account for that by making a
comparison within a certain tolerance (target value +/- epsilon). Don't
forget to disable error checking for the final workload binary, it's not
supposed to be included for performance measurements.

 

- Chris

 

 

From: parsec-users-bounces at lists.cs.princeton.edu
[mailto:parsec-users-bounces at lists.cs.princeton.edu] On Behalf Of ef
Sent: Friday, August 21, 2009 7:00 PM


To: PARSEC Users
Subject: Re: [parsec-users] Errors running Parsec benchmarks in M5

 

Hello,



For facesim the error was silly, the issue is it was looking in the wrong
path for input, from what I can tell you CANNOT set the input directory, do
you know how?




For swaptions I fixed " the unaligned access error" by linking to different
libs which also removed the seg fault. However I am stuck here:

PARSEC Benchmark Suite Version 2.1
Number of Simulations: 5000,  Number of threads: 4 Number of swaptions: 16
Swaption0: [SwaptionPrice: 0.0000234735 StdError: 0.0000083599] 
Swaption1: [SwaptionPrice: 0.0000234735 StdError: 0.0000083599] 
Swaption2: [SwaptionPrice: 0.0000234735 StdError: 0.0000083599] 
Swaption3: [SwaptionPrice: 0.0000234735 StdError: 0.0000083599] 
Swaption4: [SwaptionPrice: 0.0000234735 StdError: 0.0000083599] 
Swaption5: [SwaptionPrice: 0.0000234735 StdError: 0.0000083599] 
Swaption6: [SwaptionPrice: 0.0000234735 StdError: 0.0000083599] 
Swaption7: [SwaptionPrice: 0.0000234735 StdError: 0.0000083599] 
Swa

Thats exactly what happens, I have no clue whats going on.

Thanks
EF


_______________________________________________
parsec-users mailing list
parsec-users at lists.cs.princeton.edu
https://lists.cs.princeton.edu/mailman/listinfo/parsec-users

 


_______________________________________________
parsec-users mailing list
parsec-users at lists.cs.princeton.edu
https://lists.cs.princeton.edu/mailman/listinfo/parsec-users

 


_______________________________________________
parsec-users mailing list
parsec-users at lists.cs.princeton.edu
https://lists.cs.princeton.edu/mailman/listinfo/parsec-users

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cs.princeton.edu/pipermail/parsec-users/attachments/20090824/ae29a23f/attachment.htm>


More information about the parsec-users mailing list