Problem with instrate

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

Problem with instrate

Hercules390 - Vm mailing list
Hi Everyone,
 
I got a problem with INSTRATE :
 
  - 14.32.21 JOB02331  $HASP373 INSTRATE STARTED - INIT 1    - CLASS A - SYS

  -  SYS1

  - 14.32.21 JOB02331  +INSTRATE STARTED

  - 14.32.21 JOB02331  +  1 intel i7, z/os 1.10, 4.00

  - 14.32.21 JOB02331  +  Ranked by usage (general)

  - 14.32.21 JOB02331  +  Samples   =   9

  - 14.32.21 JOB02331  +  Loops     =   1000000

  - 14.32.21 JOB02331  +  Replicate =   1

  - 14.32.21 JOB02331  +  Tolerate% =  10

  - 14.32.21 JOB02331  +  Pgm addr   = 00007000

  - 14.32.21 JOB02331  +  DATA  addr = 00007A38

  - 14.32.21 JOB02331  +  DATAB addr = 000083F8

  - 14.32.21 JOB02331  +  DATAP addr = 00007FF8

  - 14.32.21 JOB02331  +  Instruction addr =000090148

  - 14.32.21 JOB02331  +Description                        MIPS     nS
Samples
  - 14.32.22 JOB02331  +BCTR Rx,Rloop (refference loop)   64.11     15
21
  - 14.32.25 JOB02331  +ELAPSED time exceeds 128 seconds

00- 14.32.27 JOB02331  IEF404I INSTRATE - ENDED - TIME=14.32.27

    14.32.27 JOB02331  $HASP150 INSTRATE OUTGRP=2.1.1 ON PRT1     10,011
(10,
     011) RECORDS

 
The assumption '+ELAPSED time exceeds 128 seconds' is a bit overstated!
 
You can see the dump, if needed, at :
http://www.stben.net/hercules/INSTRATE.IBMUSER.j02331cA.pdf
 You can see the compilation listing at :
http://www.stben.net/hercules/INSTRATE.IBMUSER.j02325cA.pdf
Thanks for your help.
 
Bye,
Jean-Louis

Reply | Threaded
Open this post in threaded view
|

Re: Problem with instrate

Hercules390 - Vm mailing list
Jean Noel...

This has NOTHING to do with VM or VM under Hercules.


--Ivan

On 3/6/2017 7:43 PM, 'Jean-Louis Noel' [hidden email] [H390-VM] wrote:

> Hi Everyone,
>  
> I got a problem with INSTRATE :
>  
>    - 14.32.21 JOB02331  $HASP373 INSTRATE STARTED - INIT 1    - CLASS A - SYS
>
>    -  SYS1
>
>    - 14.32.21 JOB02331  +INSTRATE STARTED
>
>    - 14.32.21 JOB02331  +  1 intel i7, z/os 1.10, 4.00
>
>    - 14.32.21 JOB02331  +  Ranked by usage (general)
>
>    - 14.32.21 JOB02331  +  Samples   =   9
>
>    - 14.32.21 JOB02331  +  Loops     =   1000000
>
>    - 14.32.21 JOB02331  +  Replicate =   1
>
>    - 14.32.21 JOB02331  +  Tolerate% =  10
>
>    - 14.32.21 JOB02331  +  Pgm addr   = 00007000
>
>    - 14.32.21 JOB02331  +  DATA  addr = 00007A38
>
>    - 14.32.21 JOB02331  +  DATAB addr = 000083F8
>
>    - 14.32.21 JOB02331  +  DATAP addr = 00007FF8
>
>    - 14.32.21 JOB02331  +  Instruction addr =000090148
>
>    - 14.32.21 JOB02331  +Description                        MIPS     nS
> Samples
>    - 14.32.22 JOB02331  +BCTR Rx,Rloop (refference loop)   64.11     15
> 21
>    - 14.32.25 JOB02331  +ELAPSED time exceeds 128 seconds
>
> 00- 14.32.27 JOB02331  IEF404I INSTRATE - ENDED - TIME=14.32.27
>
>      14.32.27 JOB02331  $HASP150 INSTRATE OUTGRP=2.1.1 ON PRT1     10,011
> (10,
>       011) RECORDS
>
>  
> The assumption '+ELAPSED time exceeds 128 seconds' is a bit overstated!
>  
> You can see the dump, if needed, at :
> http://www.stben.net/hercules/INSTRATE.IBMUSER.j02331cA.pdf
>   You can see the compilation listing at :
> http://www.stben.net/hercules/INSTRATE.IBMUSER.j02325cA.pdf
> Thanks for your help.
>  
> Bye,
> Jean-Louis
>
>
>
> ------------------------------------
> Posted by: "Jean-Louis Noel" <[hidden email]>
> ------------------------------------
>
>
> ------------------------------------
>
> Yahoo Groups Links
>
>
>



smime.p7s (4K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Problem with instrate

Hercules390 - Vm mailing list
In reply to this post by Hercules390 - Vm mailing list
---In [hidden email], <jln@...> wrote :

> Hi Everyone,
> I got a problem with INSTRATE :
> - 14.32.21 JOB02331 $HASP373 INSTRATE STARTED - INIT 1 - CLASS A - SYS
> - 14.32.25 JOB02331 +ELAPSED time exceeds 128 seconds

You are running on MVS, so you should
have posted here:

https://groups.yahoo.com/neo/groups/H390-MVS/info

instead of the VM group.

Also, note that although you posted the
result of the assembler, you didn't post
the result of the linkage editor, which is
sometimes needed too.

I'm not an expert, but I had a look anyway,
and saw this code:

CLC   ELAPSED,STCKMAX         WILL US FIT IN A FW?
BL    MAXOKAY                 YES, GOOD
WTO   ’ELAPSED TIME EXCEEDS 128 SECONDS’

And then I took a look at the "ELAPSED"
registers 4 & 5 from the dump:

R4 + R5: FFFFFFFF  FFC45F80

And I can see that it appears to have gone
negative.

I suspect this code:

*        IF NOT REFFERENCE LOOP, THEN SUBTRACT REFFER
LM     R2,R3,REFFER
SLR    R5,R3
...
SLR    R4,R2

is what is at fault, but that's just a guess.
It is probably finishing so fast that having
that subtraction is making it negative.

BFN. Paul.
Reply | Threaded
Open this post in threaded view
|

Re: Problem with instrate

Hercules390 - Vm mailing list
To further what Paul is saying:

R4 is FFFFFFFF, which is 1 subtracted from 0;
R2 is 0;

In the code beginning at line 377;

The SLR R5,R3 is resulting in a carry;
The BC 3,NOC2 falls thru;
The BCTR R4,0 results in a 1 being subtracted from R4 which yields FFFFFFFF
in R4 (0-1 = wrap around);
The SLR R4,R2 subtracts 0 from FFFFFFFF which does not change R4;

So the ELAPSED value ends up being FFFFFFFFFFC45F80 which is greater
than 0000007FFFFFF000
(The CLC at line 404);

And it abends.

Joe




On Mon, Mar 6, 2017 at 9:17 PM, [hidden email] [H390-VM] <
[hidden email]> wrote:

>
>
> ---In [hidden email], <jln@...> wrote :
>
> > Hi Everyone,
> > I got a problem with INSTRATE :
> > - 14.32.21 JOB02331 $HASP373 INSTRATE STARTED - INIT 1 - CLASS A - SYS
> > - 14.32.25 JOB02331 +ELAPSED time exceeds 128 seconds
>
> You are running on MVS, so you should
> have posted here:
>
> https://groups.yahoo.com/neo/groups/H390-MVS/info
>
> instead of the VM group.
>
> Also, note that although you posted the
> result of the assembler, you didn't post
> the result of the linkage editor, which is
> sometimes needed too.
>
> I'm not an expert, but I had a look anyway,
> and saw this code:
>
> CLC ELAPSED,STCKMAX WILL US FIT IN A FW?
> BL MAXOKAY YES, GOOD
> WTO ’ELAPSED TIME EXCEEDS 128 SECONDS’
>
> And then I took a look at the "ELAPSED"
> registers 4 & 5 from the dump:
>
> R4 + R5: FFFFFFFF FFC45F80
>
> And I can see that it appears to have gone
> negative.
>
> I suspect this code:
>
> * IF NOT REFFERENCE LOOP, THEN SUBTRACT REFFER
> LM R2,R3,REFFER
> SLR R5,R3
> ...
> SLR R4,R2
>
> is what is at fault, but that's just a guess.
> It is probably finishing so fast that having
> that subtraction is making it negative.
>
> BFN. Paul.
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Problem with instrate

Hercules390 - Vm mailing list
In reply to this post by Hercules390 - Vm mailing list
Hi Joe and Paul,

> R4 is FFFFFFFF, which is 1 subtracted from 0;
Thank you for your concern both of you.

I'm almost done with it.
The problem resides because INSTRATE poses the assumption that
an instruction will always take the same amount of time to execute.

So, it runs a dummy loop with nothing inside to know that time.
After it runs the same loop but it adds an instruction and tries to
determine
the time  used to process that instruction by subtracting the time
previously recorded
to the total time just calculated.

If it works with zPDT or a native hardware it won't under Hercules because
it lets the native OS interrupting its.

I don't know yet if it's fixable or not. Perhaps, requesting one or more
cores
for itself alone. I'm still analysing the problem.

Bye,
Jean-Louis

Reply | Threaded
Open this post in threaded view
|

Re: Problem with instrate

Hercules390 - Vm mailing list
Not correct.  You'll likely see that a single instruction added in a
loop adds nothing the the timing of the loop because the loop flushes
the pipeline.

It used to bee that the CPU timer was updated only every 48 cycles,
which also threw a spanner in the works.

On 03/07/2017 02:36 PM, 'Jean-Louis Noel' [hidden email] [H390-VM] wrote:
> So, it runs a dummy loop with nothing inside to know that time.
> After it runs the same loop but it adds an instruction and tries to
> determine
> the time used to process that instruction by subtracting the time
> previously recorded
> to the total time just calculated.
>
> If it works with zPDT or a native hardware


------------------------------------

------------------------------------


------------------------------------

Yahoo Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/H390-VM/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/H390-VM/join
    (Yahoo! ID required)

<*> To change settings via email:
    [hidden email]
    [hidden email]

<*> To unsubscribe from this group, send an email to:
    [hidden email]

<*> Your use of Yahoo Groups is subject to:
    https://info.yahoo.com/legal/us/yahoo/utos/terms/

Reply | Threaded
Open this post in threaded view
|

Re: Problem with instrate

Hercules390 - Vm mailing list
In reply to this post by Hercules390 - Vm mailing list
 - - - In [hidden email], <jln@...> wrote:
>  Hi Joe and Paul,
>> R4 is FFFFFFFF, which is 1 subtracted from 0;
> Thank you for your concern both of you.
> I'm almost done with it.
>The problem resides because INSTRATE poses the assumption that
>an instruction will always take the same amount of time to execute.

Bad assumption, in the extreme.
Neither VM, zPDF, Flex-ES, nor Hercules work that way.
Your application is broken.

With cache hits and misses, with hardware recovery, even real
zArch hardware varies but not as much as everything else.

With multiple instructions in the loop and interrupts from other tasks,
zOS varies.
For low dispatching priority task on a busy system, CPU time used
is often only a tiny fraction of the duration.

Using a high dispatching priority, perhaps transactional execution,
and separate cores might help?
Reply | Threaded
Open this post in threaded view
|

Re: Problem with instrate

Hercules390 - Vm mailing list
In reply to this post by Hercules390 - Vm mailing list
No, the problem is because you're not doing all the error checking you need
to.

For a condition code of 3, that means the result is not zero, but there is
no borrow.

So your code needs to be re-thought there.

Joe

On Tue, Mar 7, 2017 at 7:36 AM, 'Jean-Louis Noel' [hidden email] [H390-VM] <
[hidden email]> wrote:

>
>
> Hi Joe and Paul,
>
> > R4 is FFFFFFFF, which is 1 subtracted from 0;
> Thank you for your concern both of you.
>
> I'm almost done with it.
> The problem resides because INSTRATE poses the assumption that
> an instruction will always take the same amount of time to execute.
>
> So, it runs a dummy loop with nothing inside to know that time.
> After it runs the same loop but it adds an instruction and tries to
> determine
> the time used to process that instruction by subtracting the time
> previously recorded
> to the total time just calculated.
>
> If it works with zPDT or a native hardware it won't under Hercules because
> it lets the native OS interrupting its.
>
> I don't know yet if it's fixable or not. Perhaps, requesting one or more
> cores
> for itself alone. I'm still analysing the problem.
>
> Bye,
> Jean-Louis
>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Problem with instrate

Hercules390 - Vm mailing list
In reply to this post by Hercules390 - Vm mailing list
Hi somitcw,

> Bad assumption, in the extreme.
> Your application is broken.

I never claimed INSTRATE as an application of mine.
It's a benchmark written by Gary Brabiner.

- Jean-Louis

Reply | Threaded
Open this post in threaded view
|

Re: Problem with instrate

Hercules390 - Vm mailing list
 - - - In [hidden email], <jln@...> wrote:
> Hi somitcw,
>> Bad assumption, in the extreme.
>> Your application is broken.
> I never claimed INSTRATE as an application of mine.
>It's a benchmark written by Gary Brabiner.
> - Jean-Louis

I already knew who the source said wrote the source.

You are running it.
You are reporting that Hercules is broken when your
run of the application you choose is the one broken.
Person up.