FW: Process Control Extensions

From: Jeremiassen, Tor <tor@ti.com>
Date: Mon May 17 2010 - 13:29:37 PDT

Resending, as it never made it to the reflector.

From: Jeremiassen, Tor
Sent: Friday, May 14, 2010 9:22 AM
To: 'john.aynsley@doulos.com'
Cc: Jerome CORNET; systemc-p1666-technical@eda.org
Subject: RE: Process Control Extensions

John,

The randomization is something that easily could be a tool specific feature and not be part of SystemC per se. In fact, I see a greater reason for tool vendors to provide that (and similar features aimed at verification) which would be invisible to the actual model, than to include it in the SystemC language definition. I don't think I want to have models that call and switch on and off that feature independently.

I believe that the proposed process priority scheme at present is not adequately thought through. The possible performance benefits are estimates derived from worst case ordering of processes in a special form of modeling that interacts with a hardware device. In this case, the problem could be solved easily enough through skewing the timing of the processes by a clock increment, rather than resorting to the addition of an optional process priority scheme.

The issue with the process priorities as suggested is that it may not work completely as intended. Consider the use of 3rd party models, where those models assign priorities to their own processes. Depending on the priorities of those processes compared to other processes in the system, it is unclear that we couldn't end up with an unintended drop in performance - and in this case, performance improvement is the stated goal. I think a simple global priority level is too simplistic and possibly fails to consider the issues involved in composing large system models of hierarchical subsystems supplied by different groups and 3rd parties. I suggest we exercise caution against letting a fairly straight forward use case drive the adoption of such a feature.

Best regards,

Tor Jeremiassen

---
Tor Jeremiassen, Ph.D.
Simulation and Modeling CTO
SDO Foundational Tools
Texas Instruments                    Ph:    281 274 3483
P.O. Box 1443, MS 730                Fax:   281 274 2703
Houston, TX 77251-1443               Email: tor@ti.com
________________________________________
From: john.aynsley@doulos.com [mailto:john.aynsley@doulos.com] 
Sent: Friday, May 14, 2010 9:11 AM
To: Jeremiassen, Tor
Cc: Jerome CORNET; systemc-p1666-technical@eda.org
Subject: RE: Process Control Extensions
Tor, 
I sympathize with that view, but I am swaying in the direction that everything we want to do regarding process execution order is non-functional; it concerns either simulator performance or providing some tool assistance to detect accidental reliance on process ordering artefacts. 
Maybe every simulator that implements priority tips should also be obliged to switch to random process selection from time-to-time, or at least provide it as a run-time switch 8=) 
John A 
From: 
"Jeremiassen, Tor" <tor@ti.com> 
To: 
"john.aynsley@doulos.com" <john.aynsley@doulos.com>, Jerome CORNET <jerome.cornet@st.com>, "systemc-p1666-technical@eda.org" <systemc-p1666-technical@eda.org> 
Date: 
14/05/2010 15:01 
Subject: 
RE: Process Control Extensions
________________________________________
All, 
  
I am having some reservations with respect to the whole process priority concept. I think my problems are rooted in the fact that it would be a hint that would be optional to support in a simulator. A programmer may easily write models targeting this behavior such that the behavior of the model is different on a simulator supporting the process priority scheme compared to one that does not. While we may claim that such a model is non-conforming, it fails to prevent the eventual development of an "island of compatibility" and will, I suspect, reduce de facto interoperability. 
  
As a concept, I think process priorities would be a valuable addition to SystemC. However, I do believe that if we are going to add them, we need to make it mandatory, and we really need to take care in how we formulate the scheme. I am not convinced that P1666 is the right place for doing this, though if that is the members' wishes, I'll happily pitch in. 
  
  
Best regards, 
  
Tor Jeremiassen 
  
---
Tor Jeremiassen, Ph.D.
Simulation and Modeling CTO
SDO Foundational Tools
Texas Instruments                    Ph:    281 274 3483
P.O. Box 1443, MS 730                Fax:   281 274 2703
Houston, TX 77251-1443               Email: tor@ti.com 
________________________________________
From: owner-systemc-p1666-technical@eda.org [mailto:owner-systemc-p1666-technical@eda.org] On Behalf Of john.aynsley@doulos.com
Sent: Friday, May 14, 2010 6:23 AM
To: Jerome CORNET; systemc-p1666-technical@eda.org
Subject: Re: Process Control Extensions 
  
Jerome, 
Does ST foresee the process priority hint being used as a way to produce pseudo-random process execution order within an evaluation phase as a way of improving test case coverage? If this were the case then a simulator that supports the "priority hint" would have superior capability going beyond mere simulation speed. 
I don't see a problem with this. We could even add a set_priority_random() ! 
John A 
From: 
Jerome CORNET <jerome.cornet@st.com> 
To: 
"Jeremiassen, Tor" <tor@ti.com> 
Cc: 
Stuart Swan <stuart@cadence.com>, "john.aynsley@doulos.com" <john.aynsley@doulos.com>, "systemc-p1666-technical@eda.org" <systemc-p1666-technical@eda.org> 
Date: 
11/05/2010 09:19 
Subject: 
Re: Process Control Extensions
  
________________________________________
Tor, all,
sorry, my explanation was lacking real-world numbers which I will fix right away.
So, I will take again the example of a SystemC TLM platform interacting with an IP mapped on
a hardware emulator. We have many such platforms at ST. Let us consider the following scenario:
the system produces images in loop. To do this it depends on results computed by the IP mapped on
the emulator, as well as computations performed by the embedded software itself. In other words,
the embedded software "delegates" part of the computation to the IP in the emulator, then perform
its own duties.
It takes some time for the hardware IP to perform its computation and send back the result. In our
typical case, we are at around 1 fps (depends on the frame resolution).
And on the embedded software front, we are now running into situations where the embedded software
execution itself takes more and more time. All in one, this results in increased workstation time taken
to complete an evaluation phase of the scheduler (as the main process executing the embedded software
is taking more and more time). In some situations, the evaluation phase takes more than one second (1.6
to be precise).
The result of the benchmark really depends on the process order execution chosen by the scheduler, and may change
if you add other processes in the loop. But it is obvious that we have to prioritize the processes that will result
in the IP on emulator starting its computations, as the sooner it will start the better. The worst case is if the emulator
starts at the end of the evaluation phase, as we then add 1 second of penalty waiting for the result. With the numbers
I given that is one second in addition to 1.6 already taken by the SystemC simulation. So in this example we can gain
(or lose depending on which side you look at it) up to 62 % percent per evaluation phase. Process priorities ensures
that you will never lose anything, whatever the process execution order is, and provided you have got a "priority-aware"
simulator.
I have focused here on the hardware emulator example, but there is room to exploit this feature in many other
situations.
Regards,
Jerome
On 5/8/2010 5:43 AM, Jeremiassen, Tor wrote: 
I'm not going to oppose this, but has ST done any benchmarking with respect to the utility of such a proposal? It would be good to have some quantitative idea of the possible performance benefit before making it part of the standard. 
 
Best regards, 
 
Tor Jerermiassen 
  
---
Tor Jeremiassen, Ph.D.
Simulation and Modeling CTO
SDO Foundational Tools
Texas Instruments                    Ph:    281 274 3483
P.O. Box 1443, MS 730                Fax:   281 274 2703
Houston, TX 77251-1443               Email: tor@ti.com 
  
________________________________________
From: owner-systemc-p1666-technical@eda.org [mailto:owner-systemc-p1666-technical@eda.org] On Behalf Of Stuart Swan
Sent: Friday, May 07, 2010 11:58 PM
To: john.aynsley@doulos.com; systemc-p1666-technical@eda.org
Subject: RE: Process Control Extensions 
 
John, All- 
 
I think I'm in favor of the process priority "hints", as long as it is absolutely clear in the standard that they are just 
hints and that a compliant implementation is always free to ignore them. 
 
Thanks 
Stuart 
 
From: owner-systemc-p1666-technical@eda.org [mailto:owner-systemc-p1666-technical@eda.org] On Behalf Of john.aynsley@doulos.com
Sent: Friday, May 07, 2010 4:00 AM
To: systemc-p1666-technical@eda.org
Subject: RE: Process Control Extensions 
 
All,
Does anyone have any specific objections or counter-proposals concerning the Process Control Extensions, or is everyone positive about them as they stand? (Of course, I am not trying to rule out any improvements or clarifications as we refine the spec.)
How about ST's proposal for process priorities as hints? Adding actual process priorities to SystemC would seem to be a radical change that would impact the scheduler, process control, and might introduce the possibility of new use models. On the other hand, ST's proposal is only for "hints", in which case, do we want to change the IEEE standard "merely" to incorporate scheduler optimization hints?
Thanks,
John A
-----Stuart Swan <stuart@cadence.com> wrote: ----- 
To: "john.aynsley@doulos.com" <john.aynsley@doulos.com>, "systemc-p1666-technical@eda.org" <systemc-p1666-technical@eda.org>
From: Stuart Swan <stuart@cadence.com>
Date: 05/06/2010 10:05PM
Subject: RE: Process Control Extensions 
John- 
 
Some quick answers embedded below to your questions.. 
 
Thanks 
Stuart 
 
From: owner-systemc-p1666-technical@eda.org [mailto:owner-systemc-p1666-technical@eda.org] On Behalf Of john.aynsley@doulos.com
Sent: Wednesday, May 05, 2010 7:18 AM
To: systemc-p1666-technical@eda.org
Subject: Process Control Extensions 
Issues/Questions 
* Should we now deprecate SC_CTHREAD or keep SC_CTHREAD as a first-class feature of SystemC, or something else? 
SC_CTHREAD has been around for so long that it won't go away anytime soon.  One option is to say something in the LRM such as "SC_CTHREAD 
is now redundant since all of its features are now available with SC_THREAD, so SC_CTHREAD may be deprecated and removed from the standard 
at some point in the future." 
* Should we invite input from the members of the OSCI Synthesis WG on the subject of clocked threads and synchronous and asynchronous resets? 
* ST (Jerome) has proposed that we add process priorities. Does this P1666 WG wish to pursue that proposal? If so, how do process priorities interact with the process control extensions? 
If I understood Jerome's proposal, the priorities are just "hints" and can always be ignored. So it seems to me one option is to say that from the perspective 
of the process control extensions, the priorities have no implications on the standard. 
* Is include_descendants intended to find descendents of intermediate processes that have already terminated, i.e. children of dead children? 
I think it is supposed to get them all, Bishnupriya needs to confirm. 
* Do we need to try out these ideas in a proof-of-concept implementation, particularly given that the process control extensions are already (at least partially) implemented in the OSCI POC simulator? I will volunteer to create a set of regression tests. 
We accept your offer! Having such openly available tests will be very helpful in getting the features implemented properly in all simulators. 
We have donated some tests for process control constructs to OSCI. More tests are clearly needed. We have also implemented all of the constructs 
in our simulator and will run any tests that people offer against our implementation and provide the log results. 
John A 
-- 
This message has been scanned for viruses and 
dangerous content by MailScanner, and is 
believed to be clean. 
-- 
This message has been scanned for viruses and 
dangerous content by MailScanner, and is 
believed to be clean. 
-- 
This message has been scanned for viruses and 
dangerous content by MailScanner, and is 
believed to be clean. 
-- 
This message has been scanned for viruses and 
dangerous content by MailScanner, and is 
believed to be clean. 
-- 
This message has been scanned for viruses and 
dangerous content by MailScanner, and is 
believed to be clean. 
-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Mon May 17 13:29:52 2010

This archive was generated by hypermail 2.1.8 : Mon May 17 2010 - 13:29:55 PDT