Monday, October 24, 2016

Digest for comp.lang.c++@googlegroups.com - 25 updates in 8 topics

"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Oct 24 09:52AM -0700

On Monday, October 24, 2016 at 12:32:23 PM UTC-4, Öö Tiib wrote:
> with your ugsome god on shore of that lake in paradise of pleasures
> and glory. I feel sad that you have such fantasies but people are
> different, sorry.
 
Jesus Christ is truth. The universe He build is founded upon Him, so it
is founded upon truth. All who reject Him reject truth, and are therefore
embracing and pursuing lies.
 
How can lies be tolerated in a universe built on truth?
 
The Bible teaches Satan is a liar, and the father of lies. It is he who
has rebelled against God. It is he who came in and destroyed God's perfect
and harmonious creation ... through the introduction of lies, which then
caused people to sin. And what harm has sin done to this world?
 
If you could be whisked back to see the Earth before sin entered in, you
would call it a paradise of paradises. Everything was "very good" by
even God's proclamation, and His standard is perfection.
 
What sin has done is bring this world to its current state. And what
people who will not embrace the truth, who will only hold on to the lies
of the devil, will do in eternity is destroy God's eternal creation by
the acts of destruction which alter that which is good into that which
is destroyed or diseased, just as we see in our bodies with cancer where
good tissue is replaced with diseased tissue, and just as we see in the
world where good resources are tainted into poison and death.
 
The prisoner example of someone on Earth. If a person is intent to only
and always only do harm, then they will eventually be caught by the
police, arrested, sent to prison, and ultimately wind up in a solitary
confinement cell without any direct contact with people because all they
do is do harm. These are earthly people with regular bodies who can
only do so much harm. But what could they do if they were gods? Because
the Bible teaches us that we are the sons and daughters of God, and that
we also are gods. What could a being with god power do to a perfect
harmony like Heaven?
 
They would do the same thing to Heaven we've seen sin do (through our
flesh) down here to the Earth ... destroy it. Introduce death. Entice
others to sin, and so on.
 
God has no choice but to bind people who reject truth, and embrace total
falseness, so that they cannot, through their eternal life, affect the
things of eternity.
 
If you can't see that necessity ... then look again because you're only
thinking temporally, and not eternally. You're only thinking of things
like we have here on Earth, and not of the requirements of unending life,
and true god-like powers.
 
FWIW, Hell was never created for man, but only for fallen angels. But
because of man's sin, pride, and arrogance in refusing to turn from their
sin, Hell enlarged herself to accommodate all who embrace the lie:
 
http://biblehub.com/kjv/matthew/25-41.htm
41 Then shall he say also unto them on the left hand, Depart from me,
ye cursed, into everlasting fire, prepared for the devil and his
angels:
 
Those who are cursed are they who would not receive the truth.
 
http://biblehub.com/kjv/isaiah/5.htm
14 Therefore hell hath enlarged herself, and opened her mouth without
measure: and their glory, and their multitude, and their pomp, and
he that rejoiceth, shall descend into it.
 
It is only those who have defected from the truth to falseness who will
be consumed forever in Hell, and that is by their own free will choice.
Everyone who will receive truth will be saved. Every last one of them.
 
Best regards,
Rick C. Hodgin
Melzzzzz <mel@zzzzz.com>: Oct 24 10:02PM +0200

On Mon, 24 Oct 2016 05:23:06 -0700 (PDT)
> searching the truth, and God flipping that inner switch which allowed
> me to then know the truth. And when I asked forgiveness for my sin
> and was born again, the change occurred within me.
 
In other words you were sober now you are drunk...
 
 
--
press any key to continue or any other to quit
Melzzzzz <mel@zzzzz.com>: Oct 24 10:09PM +0200

On Mon, 24 Oct 2016 07:56:05 -0700 (PDT)
 
> Flowers were beautiful. Squirrels scampering were beautiful. And
> whereas I had always thought they were beautiful, they were now
> beautiful in a new way.
 
This is because you don't live in Syria...
 
> Best regards,
> Rick C. Hodgin
 
Regards...
 
--
press any key to continue or any other to quit
Melzzzzz <mel@zzzzz.com>: Oct 24 10:11PM +0200

On Mon, 24 Oct 2016 09:52:45 -0700 (PDT)
 
> Jesus Christ is truth.
 
No. It's just a name.
 
 
The universe He build is founded upon Him, so
> it is founded upon truth.
 
What are you on? Even Bible does not says that.
 
 
 
--
press any key to continue or any other to quit
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Oct 24 01:16PM -0700

Melzzzzz wrote:
> > me to then know the truth. And when I asked forgiveness for my sin
> > and was born again, the change occurred within me.
 
> In other words you were sober now you are drunk...
 
Well ... no. :-) We are called to be sober, and filled with the Spirit,
which is God's Holy Spirit. And that's what happens to born again
believers. They literally change. The old passes, the new is here.
 
http://biblehub.com/kjv/ephesians/5-18.htm
 
18 And be not drunk with wine, wherein is excess; but be filled
with the Spirit;
19 Speaking to yourselves in psalms and hymns and spiritual songs,
singing and making melody in your heart to the Lord;
 
I can testify that 5:19 actually happens. I find myself singing songs to
the Lord. New ones I make up on the spot. Songs that aren't a new lyric
applied to an existing melody, but even new melodies. Blows me away. I
do not do it. It just comes forth from within me.
 
Best regards,
Rick C. Hodgin
scott@slp53.sl.home (Scott Lurndal): Oct 24 06:00PM

>When I see timing in programs such as hertz, how do I interpret them.
 
https://en.wikipedia.org/wiki/Hertz
c123456749@gmail.com: Oct 24 11:11AM -0700

On Monday, October 24, 2016 at 2:01:05 PM UTC-4, Scott Lurndal wrote:
> "michael739@gmail.com" <michael739@gmail.com> writes:
> >When I see timing in programs such as hertz, how do I interpret them.
 
> https://en.wikipedia.org/wiki/Hertz
 
But what does CPU time have to do with my code, instructions per second that is. Sure, my CPU can read and process a certain number of instructions, but I think the various HERTZ constants in my code means something else. What's the truth?
 
Michael
Christian Gollwitzer <auriocus@gmx.de>: Oct 24 09:00PM +0200

> second that is. Sure, my CPU can read and process a certain number of
> instructions, but I think the various HERTZ constants in my code
> means something else. What's the truth?
 
How should we know? Unless you show "those various HERTZ constants in
your code", how do you think we could understand what they are doing?
 
Christian
scott@slp53.sl.home (Scott Lurndal): Oct 24 07:05PM

>> >When I see timing in programs such as hertz, how do I interpret them.
 
>> https://en.wikipedia.org/wiki/Hertz
 
>But what does CPU time have to do with my code, instructions per second that is. Sure, my CPU can read and process a certain number of instructions, but I think the various HERTZ constants in my code means something else. What's the truth?
 
You've neither described the hardware platform or the application,
so we'd simply be guessing.
 
Ask whomever wrote the code what their intent was.
 
In Unixland, HERTZ is the frequency of the system clock, as visible
to applications - traditionally, it has been set to 100, which
implies a resolution of 10 milliseconds.
 
With linux, the value of HERTZ (or HZ) is a kernel configuration parameter
(unless you're using a tickless kernel).
 
When looking at CPU performance, IPC (instructions per cycle) is the
interesting metric. Given that and the cycle time, one can derive
the mean instructions-per-second count. Note that IPC is workload
dependent (e.g. most modern microprocessors can execute two 64-bit
additions per cycle, but it may take 6+ cycles to execute an integer
divide instruction).
Melzzzzz <mel@zzzzz.com>: Oct 24 10:14PM +0200

On Mon, 24 Oct 2016 11:11:00 -0700 (PDT)
> instructions, but I think the various HERTZ constants in my code
> means something else. What's the truth?
 
> Michael
 
CPU/MEMORY clock rate is in HERTZ.
 
 
--
press any key to continue or any other to quit
"Öö Tiib" <ootiib@hot.ee>: Oct 24 09:41AM -0700

On Monday, 24 October 2016 17:19:53 UTC+3, David Brown wrote:
> century). And feel free to have the last insult about singing pigs, or
> to tell us again how you were using RAID at IBM long before any of the
> rest of us were born.
 
Yes, but what you expect? He can't have any links nor cites since those
don't exist so all he has are empty insults and groundless lies. He will
use what he has.
Jerry Stuckle <jstucklex@attglobal.net>: Oct 24 01:47PM -0400

On 10/24/2016 12:41 PM, Öö Tiib wrote:
 
> Yes, but what you expect? He can't have any links nor cites since those
> don't exist so all he has are empty insults and groundless lies. He will
> use what he has.
 
Wrong answer. No lies - just calling you on your lack of knowledge.
And if it is an insult to call you a troll, I will apologize to trolls.
 
And once again you can't refute the claims I made about your lack of
knowledge.
 
--
==================
Remove the "x" from my email address
Jerry Stuckle
jstucklex@attglobal.net
==================
Jerry Stuckle <jstucklex@attglobal.net>: Oct 24 01:52PM -0400

On 10/24/2016 11:23 AM, David Brown wrote:
 
>> Yes, David - like you argued that PC's don't have buses
 
> No one argued that. Someone (not me) wrote about processor
> architectures, and you misunderstood.
 
Right.
 
 
> I didn't write that. I wrote that they do not suffer from frequency
> dependent effects to the same extent as copper cables - and again, you
> misunderstood.
 
Try again.
 
>> in a token ring fashion...
 
> No one wrote that. Someone (not me) mentioned token ring, and you
> misunderstood.
 
Yea, right.
 
> you are happy to present this sort of argument, when anyone reading it
> can easily go back a few posts and check your nonsense.
 
> You are wasted as a "consultant" - you should have been a politician.
 
Not at all. I read what you right. You would be the politician -
constantly denying what you say.
 
>> You even tried to argue that a wire can have multiple voltages on it,
 
> Which is correct, and which you agreed with - because the voltage can be
> different at different points on the wire.
 
And you don't even understand what people talk about.
 
> previous post), and I know that they measure the voltage at a particular
> point - and are therefore useless for measuring the different voltages
> along a wire carrying a high speed signal.
 
Here's a clue, stoopid. ANY wire, except for a superconductor, has an
infinite number of voltages along it, due to resistive losses. But
people don't discuss them. They discuss a single voltage - at a single
point.
 
Only pedantic trolls would bring up wavelengths when discussing voltages
along a wire. And that pedantic troll just proved once again he has no
idea what he's talking about.
 
>> you should bow to experience - something you repeatedly show you have
>> none of.
 
> I will let others be the judge of that.
 
Yes, let's let KNOWLEDGEABLE people be the judge of that. Neither you
nor Ian fit that mold, as you have so often proved. But every engineer
I know agrees - because that is what we were taught both in school and
in the real world.
 
--
==================
Remove the "x" from my email address
Jerry Stuckle
jstucklex@attglobal.net
==================
Jerry Stuckle <jstucklex@attglobal.net>: Oct 24 01:54PM -0400

On 10/24/2016 12:41 PM, Öö Tiib wrote:
 
> Yes, but what you expect? He can't have any links nor cites since those
> don't exist so all he has are empty insults and groundless lies. He will
> use what he has.
 
Sorry - responded to the wrong post.
 
And no, I'm not going to waste any more time on pointing out links to
either David or Ian. They have both repeatedly proven how they will
argue with those links, as David just admitted. And he would not back
up their arguments with his own links - as he has also repeatedly shown.
 
No, it's not worth my time to try to teach the pig to sing. Or educate
a pedantic troll.
 
--
==================
Remove the "x" from my email address
Jerry Stuckle
jstucklex@attglobal.net
==================
Ian Collins <ian-news@hotmail.com>: Oct 25 07:25AM +1300

On 10/25/16 06:54 AM, Jerry Stuckle wrote:
 
> And no, I'm not going to waste any more time on pointing out links to
> either David or Ian. They have both repeatedly proven how they will
> argue with those links, as David just admitted.
 
How can we argue with what you can't provide?
 
--
Ian
Ian Collins <ian-news@hotmail.com>: Oct 25 07:30AM +1300

On 10/25/16 01:34 AM, Jerry Stuckle wrote:
> I'm not going to bother to get a link for you. You'll just argue with
> that also, like you have before. You'll argue with anything I say
> rather than admit you are wrong.
 
I'll happily admit to being wrong if you provide the facts. All I ask
is for a link to a common system that supports the mode you describe.
To save you time, you don't have to bother checking Dell or LSI cards,
ZFS, btrfs or gmirror.
 
--
Ian
Jerry Stuckle <jstucklex@attglobal.net>: Oct 24 03:12PM -0400

On 10/24/2016 2:30 PM, Ian Collins wrote:
> is for a link to a common system that supports the mode you describe. To
> save you time, you don't have to bother checking Dell or LSI cards, ZFS,
> btrfs or gmirror.
 
You never have yet, Ian, even though you claim you will. Sorry, I'm not
going to bother. And a file system such as ZFS is not true RAID - only
an emulation. Although I expect you to argue that point, also.
 
Go ahead - show more of your ignorance.
 
--
==================
Remove the "x" from my email address
Jerry Stuckle
jstucklex@attglobal.net
==================
Jerry Stuckle <jstucklex@attglobal.net>: Oct 24 03:12PM -0400

On 10/24/2016 2:25 PM, Ian Collins wrote:
>> either David or Ian. They have both repeatedly proven how they will
>> argue with those links, as David just admitted.
 
> How can we argue with what you can't provide?
 
You have argued with what I've provided before, Ian. I'm not going to
continue to try to teach the pigs to sing. Do your own homework.
 
--
==================
Remove the "x" from my email address
Jerry Stuckle
jstucklex@attglobal.net
==================
Mr Flibble <flibbleREMOVETHISBIT@i42.co.uk>: Oct 24 07:11PM +0100

On 24/10/2016 06:07, Daniel wrote:
> }
 
> return 0;
> }
 
Your result isn't surprising at all given that your testcase isn't a
usage scenario where one would typically deploy memory pools. Now for a
more realistic usage scenario:
 
int main()
{
book book1{ "Robocop", "ED209", 25.17 }; // small strings for SSO to
avoid separate dynamic allocations
size_t count = 10000000;
 
map1 booklist1; // to be fair we don't want to deallocate booklist1
possibly creating fragmentation before testing booklist2
map2 booklist2;
 
{
auto start = high_resolution_clock::now();
for (size_t i = 0; i < count; ++i)
{
booklist1.insert(std::make_pair(i, book1));
if (count % 1000 == 0)
while (!booklist1.empty())
booklist1.erase(booklist1.begin());
}
auto end = high_resolution_clock::now();
auto elapsed =
std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count();
std::cout << "(std_allocator) " << elapsed << " milliseconds" <<
std::endl;
}
 
{
auto start = high_resolution_clock::now();
for (size_t i = 0; i < count; ++i)
{
booklist2.insert(std::make_pair(i, book1));
if (count % 1000 == 0)
while (!booklist2.empty())
booklist2.erase(booklist2.begin());
}
auto end = high_resolution_clock::now();
auto elapsed =
std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count();
std::cout << "(boost_allocator) " << elapsed << " milliseconds" <<
std::endl;
}
 
return 0;
}
 
Results:
 
(std_allocator) 1515 milliseconds
(boost_allocator) 1186 milliseconds
 
/Flibble
Daniel <danielaparker@gmail.com>: Oct 24 11:39AM -0700

On Monday, October 24, 2016 at 2:11:30 PM UTC-4, Mr Flibble wrote:
 
> Results:
 
> (std_allocator) 1515 milliseconds
> (boost_allocator) 1186 milliseconds
 
My results for that one are
 
(std_allocator) 1438 milliseconds
(boost_allocator) 983 milliseconds
 
which are similar to yours. But I would quarrel a little bit with the notion
that that is a more realistic usage scenario :-) That's a lot of erases.
 
Best regards,
Daniel
Mr Flibble <flibbleREMOVETHISBIT@i42.co.uk>: Oct 24 07:43PM +0100

On 24/10/2016 19:39, Daniel wrote:
> (boost_allocator) 983 milliseconds
 
> which are similar to yours. But I would quarrel a little bit with the notion
> that that is a more realistic usage scenario :-) That's a lot of erases.
 
It is more realistic because a primary driver for using memory pools is
to avoid and/or not be affected by memory fragmentation and memory only
fragments after deallocations: your testcase was just allocations.
 
/Flibble
scott@slp53.sl.home (Scott Lurndal): Oct 24 05:59PM


> I took »escape« from Chandler Carruth and wrote a small
> microbenchmark around it to benchmark the operation »%«
> (gcc or compatible assumed):
 
[snip unreadable code fragment]
 
> Now, is this a reasonable microbenchmark?
 
> Without the »escape«, the loop and all is just removed
> by the compiler according to the assembly output.
 
the "escape" is simply a compiler barrier. If the compiler
can remove code, the compiler (optimizer, generally) has determined that the
code is unnecessary (because k is never used), the compiler barrier
tells the compiler don't mess with the code.
 
#define barrier() asm volatile ("":::"memory")
 
is sufficient in gcc.
 
I'm not sure why you'd expect division to be comparable to
addition from a performance perspective[*]. The CLTD instruction
takes a 32-bit long and sign extends it to a 64-bit long, which
is required by the IDIVL instruction. It has nothing to do with floating
point.
 
[*] See the appropriate vendor optimization guide for instruction
cycle counts (hint: idivl takes many more cycles than addl).
c123456749@gmail.com: Oct 24 10:47AM -0700

When I see timing in programs such as hertz, how do I interpret them.
 
Basically, I don't know how to use them. Can you give me a simple example. Is there more than one interpretation.
 
Michael
"michael739@gmail.com" <c123456749@gmail.com>: Oct 24 10:45AM -0700

When I see timing in programs such as hertz, how do I interpret them.
 
Basically, I don't know how to use them. Can you give me a simple example. Is there more than one interpretation.
 
Michael
ram@zedat.fu-berlin.de (Stefan Ram): Oct 24 04:53PM

I took »escape« from Chandler Carruth and wrote a small
microbenchmark around it to benchmark the operation »%«
(gcc or compatible assumed):
 
#include <chrono>
#include <iostream> // ::std::cout
#include <ostream> // <<
 
static void escape( void * p )
{ asm volatile( "" : : "g"(p) : "memory" ); }
 
int main()
{ auto start = ::std::chrono::high_resolution_clock::now();
{ int i = 1; int j = 1; int k = 1;
for( long l = 0; l < 1'000'000'000; ++l )
{ escape( &i );
escape( &j );
k = i % j;
escape( &k ); }}
auto end = ::std::chrono::high_resolution_clock::now();
::std::cout <<
::std::chrono::duration< double, ::std::nano >( end - start ).count()
<< '\n'; }
 
Times printed were about 6 times larger for »/« and for »%«
than for »+« and for »*«.
 
Here is the assembler generated for the loop:
 
.L3:
movl 36(%rsp), %eax
cltd
idivl 40(%rsp)
movl %edx, 44(%rsp)
subl $1, %ecx
jne .L3
 
It seems that one can say
 
i = 36(%rsp)
j = 40(%rsp)
k = 44(%rsp)
l = %ecx
 
cltd means "Convert Long To Double". It does not appear
for »+« and »*«, but it also appears for »/«. I'm not sure
why it is done that way, first "cltd" and then "idivl".
Is this a float operation or an integer operation?
 
Now, is this a reasonable microbenchmark?
 
Without the »escape«, the loop and all is just removed
by the compiler according to the assembly output.
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page.
To unsubscribe from this group and stop receiving emails from it send an email to comp.lang.c+++unsubscribe@googlegroups.com.

No comments: