[parsec-users] Questions about provided binaries (dedup & freqmine)

Jim Dempsey jim at quickthreadprogramming.com
Wed Jun 2 08:24:41 EDT 2010


The hooks calls are made from within the serial regions of your application.
And they make no thread library calls. Therefore they need not be compiled
with OpenMP (or pthreads, etc...).

As for memory requirements, what did you observe as the consumption running
natively on x86? The fact that a program runs on a 2GB system does not mean
it requires .le. 2GB. The x86 native run have virtual memory demands that
exceed 2GB while the simulated machine might not have simulated virtual
memory. Also check the default stack size inside your virtual machine
environment. If the stack size is excessively large then you might be able
to reclaim some simulated RAM by reducing the stack size within the
simulated OpenMP environment.

Another option you have is to simulate a system with 3GB, 4GB,... RAM. If
your host machine has 2GB physical you should be able to simulate the larger
virtual system while having your native virtual memory perform paging. This
may not be as bad as it sounds. Since, for example, if your simulation
progresses at 1/100th native rate, the paging that occurs (hidden from the
simulation system) would occur at 100x what the virtual clock time sees.

Jim Dempsey

-----Original Message-----
From: parsec-users-bounces at lists.cs.princeton.edu
[mailto:parsec-users-bounces at lists.cs.princeton.edu] On Behalf Of Junjie Wu
Sent: Tuesday, June 01, 2010 6:50 PM
To: parsec-users at lists.cs.princeton.edu
Subject: [parsec-users] Questions about provided binaries (dedup & freqmine)

Hello everyone,

I successfully compiled and ran all the cases natively under x86, but I'm
now using SIMICS to simulate a sparc structure with solaris 10. The uname -a
SunOS abisko 5.10 Generic_120011-14 sun4u sparc SUNW,Sun-Fire

I don't want to manually compile everything inside the simulator, and I
don't have a sparc machine either. Therefore, I downloaded the provided
binary from the website. I use parsecmgmt to run my test (bin/parsecmgmt -a
run -p <case> -c gcc-hooks -x pre -i <size> -n <nthreads>)

I have following problems:

[HOOKS] PARSEC Hooks Version 1.2
[DataProcess] Memory allocation failed.

The simulated machine has 2GB memory. Is that enough? I didn't have this
problem when running dedup under x86 (compiled myself).

Based on my experience working with x86, I'm pretty sure the provided
gcc-hooks binary is not a parallel one. The speedups I got was always
1.00xx, no matter how many threads I was using. The default gcc-hooks config
calls openmp config, but that openmp config never specifies the -fopenmp
flag. I also got confirmation from someone else running the provided
sparc-solaris binaries. It's trivial to resolve the issue, but since I can't
recompile it in simulator, I want to request an update on the official
binary. I don't think a serial gcc-hooks version is intended. Just for
anyone interested:
CFLAGS="${CFLAGS} -fopenmp"
to pkgs/apps/freqmine/parsec/gcc-hooks.bldconf will do the trick. Though
this might not be a nice way.

I'd really appreciate any thoughts on the two problems.

Junjie Wu
parsec-users mailing list
parsec-users at lists.cs.princeton.edu

More information about the parsec-users mailing list