Hi
I have written a C++ program (Redhat Linux 7.2, gcc v2.96). The
program makes a sequence of calls to rand() after having seeded the
random number generator using srand( 0 ). Under normal circumstances,
for a given input state, the sequence of random numbers generated is
exactly reproduced each time the program is run. So, if I run the tool
3 times in succession, the path of execution is completely identical
each time as far as the sequence of random numbers is concerned.
I also want to profile the performance of this program, and so
recompiled and linked using the -pg option to allow gprof to be run
after execution.
However, I now find that the sequence of random numbers generated at
each subsequent run of the program is NOT reproducible. It looks like
linking with -pg is what caused the problem. Obviously, since the path
of execution is now different each time, the profiling results are
rather less meaningful.
Has anyone observed this behaviour? If so, can you recommend any ways
to get reproducible random number sequences WITH the -pg linking
option?
Thanks
Andrew. 3 4025
Andrew Bonello wrote: Hi
I have written a C++ program (Redhat Linux 7.2, gcc v2.96). The program makes a sequence of calls to rand() after having seeded the random number generator using srand( 0 ). Under normal circumstances, for a given input state, the sequence of random numbers generated is exactly reproduced each time the program is run. So, if I run the tool 3 times in succession, the path of execution is completely identical each time as far as the sequence of random numbers is concerned.
I also want to profile the performance of this program, and so recompiled and linked using the -pg option to allow gprof to be run after execution.
However, I now find that the sequence of random numbers generated at each subsequent run of the program is NOT reproducible. It looks like linking with -pg is what caused the problem. Obviously, since the path of execution is now different each time, the profiling results are rather less meaningful.
Has anyone observed this behaviour? If so, can you recommend any ways to get reproducible random number sequences WITH the -pg linking option?
Since this problem statement is specific to GNU G++ (and the GNU
profiling tools), the GNU G++ newsgroups / mailing lists are probably
the best/right places to ask for assistance. On Usenet, the GNU G++
"help" group is,
gnu.g++.help
For mailing list info, visit the GCC web site at http://gcc.gnu.org
FWIW, you should also post a short, complete, compilable C++ program
sample that exactly demonstrates the problem you're describing. Without
some actual code to look at, the g++ folks can only make guesses as to
the "real" problem (e.g., compiler bug, code bug, linker bug, programmer
error ;-), etc.).
--
Jim
To reply by email, remove "link" and change "now.here" to "yahoo"
jfischer_link58 09{at}now.here. com
Jim Fischer wrote: FWIW, you should also post a short, complete, compilable C++ program sample that exactly demonstrates the problem you're describing. Without some actual code to look at, the g++ folks can only make guesses as to the "real" problem (e.g., compiler bug, code bug, linker bug, programmer error ;-), etc.).
FWIW2, when I use a "stock" (non-redhat) GNU G++ 3.3.1 compiler to build
the following C++ code sample on a Red Hat 9 Linux box (with an Intel
Pentium-III/Celeron CPU), the program output is always the same - with
or without profiling support enabled:
// main.cpp
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
srand( 0 );
for ( int i = 0; i < 10; ++i) {
cout << rand() << '\n';
}
}
$ g++ -Wall -Werror -O3 -pg -o try main.cpp
FWIW3: IIRC, the GCC 2.96.x releases are Red Hat specific beasts. So the
GNU G++ folks might redirect you to the Red Hat Linux groups / mailing
lists for help with this problem. IOW, the problem might be a "feature"
of Red Hat's GCC 2.96 builds...
--
Jim
To reply by email, remove "link" and change "now.here" to "yahoo"
jfischer_link58 09{at}now.here. com This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics |
by: takashi |
last post by:
Hi, I am having trouble, using 'gnu profiler'. The problem is when I type:
gprof executable_name
I don't get any accumulated time for the execution of the program. The
detail of what I have done is the following.
1) I created a program named "prac2.cpp". Prac2.cpp is the following.
#include<iostream>
using namespace std;
int main(){
|
by: Gumby |
last post by:
Is gprof on Solaris 9 X86 not as supported as Solaris 9 Sparc?
At work when we try to compile a program with -pg to use
gprof to performance profile our software, the compiled
app just dies instantly when it's started, no gmon.out
file is made and the core file can't be traced by ddd:
(it warns there's no symbols or no stack something like that).
We did remove /usr/lib from the LD_LIBRARY_PATH and
substituted it with /usr/lib/libp as...
|
by: Dave |
last post by:
Hello,
I would like to profile a Python program using gprof.
I already rebuilt Python with CC="gcc -pg"
../configure. So, I should be able to use gprof. How do
I do that? Should I first run Python and then gprof?
What are the steps?
Thanks a lot!
|
by: AlvaroMako |
last post by:
Hello:
I am using g++, on linux, and i am trying profile out my program but I
have problems with the calls to the symbols that are in shared library,
does not leave anything these symbols. Everything is compiled with -pg
-g. Where is the problem? Gprof works with the dynamic librarys ???
Thanks
|
by: Yan Yang |
last post by:
Hi,
I have a program and I want to test its execution time. When I run the
program, I can feel it runs about 4 mins, but the gprof only says the
accumlated time is 7.2 secs.
Then I use the command: "date; my program; date" and from the time
difference, I got the time 287 seconds?
I am really confused about these two numbers. Why gprof only accumlated 7.2
| |
by: Pasacco |
last post by:
dear
I need to know the execution time of the program. Below is just an
example. I used to use gprof. But in this case, the error messsage says
"gprof : gmon.out file is missing call-graph data".
Is it possible to 'gprof' with this ? Or it will be nice if someone
introduce how to measure execution time......
Thankyou for comment.
|
by: =?iso-8859-1?q?Nicolas_Herv=E9?= |
last post by:
I am using gprof, and as explain in
http://www.gnu.org/software/binutils/manual/gprof-2.9.1/html_node/gprof_18.html#SEC18
I could use the "-g -pg -a" options of gcc and then use the "-l -A"
options of gprof to obtain an anotated source listing at the basic
bloc level.
Unfortunately my version of gcc (4.0.0) does not recognize the "-a"
option.
cc1: error: unrecognized command line option "-a"
|
by: Congcong |
last post by:
When I use gprof to profile a program, it seems never show me the profile info on c lib routines such as malloc. But sometimes, profile info on such c lib routines are also important.
I use 'gcc -g -pg' to compile the c source. Should I use other options in order for gprof to show 'malloc'?
Any more suggestions on program profiling?
Thanks!
|
by: Rich Fife |
last post by:
Quick rand() question:
I know you're not supposed to use "rand() % 1024" for instance,
because it focuses on the lower bits. However, it seems to me that
given that the argument is not a power of two (or near a power of
two), that this is not an issue. The upper bits will participate
equally in the result with the lower. Am I missing something?
Thanks!
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look !
Part I. Meaning of...
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed.
This is as boiled down as I can make it.
Here is my compilation command:
g++-12 -std=c++20 -Wnarrowing bit_field.cpp
Here is the code in...
| |
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth.
The Art of Business Website Design
Your website is...
|
by: agi2029 |
last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own....
Now, this would greatly impact the work of software developers. The idea...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules.
He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms.
Adolph will...
|
by: adsilva |
last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
|
by: 6302768590 |
last post by:
Hai team
i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
|
by: muto222 |
last post by:
How can i add a mobile payment intergratation into php mysql website.
| |
by: bsmnconsultancy |
last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...
| | |