05-05-2008 11:08 PM
05-07-2008 06:55 AM
Dear Josè,
Actually there are many way to call subsequence in a parallel way in TS.The main technique is call a subsequence in a new thread or a new execution.
But what you're describing looks more strange to me. Seems you want to call a given number of steps, i.e 10, in a parallel manner. Is that correct ?.
Can you describe this need better ? If you call 10 steps in parallel the potential risk of race conditons would be quite high and difficult to debug.
Have a good day.
05-07-2008 10:14 AM
05-12-2008 03:00 AM
Dear Josè,
Actually my name is Filippo, unfortunately I'm not Richard Feynman.
That said we have to rule out if your problem is merely load the module or load and run them. §
It's a crucial point because if you have only to load the module you'll not face problems of parallel execution and the solution should be easier. Otherwise if you need to load and run each module at the same time you'll have to carefully desing your "sequence".
Preloading each module before execution starts will occupy more RAM but should speed up the execution. You can toggle loading policies of each step from Step>>Properties>>Run Options>>Load Options
Finally if you need to run more sequence in a parallel manner you can toggle the behavior of a subsequence call in Module>>Execution Options>>New Thread/New Execution depending on what you need. Probably new thread because new execution it's a bit slower.
Have a good day
05-12-2008 05:14 AM
05-12-2008 08:56 AM
Dear Josè,
I get from you each Step in TestStand is actually sort of TCP/IP Client/Server that sends a TCP Command to a PPC ( PowerPC?) executor and eventually waits for an answer or timeout. If This is the case seems you are actually Loading and Running each step at the same time thus you'll have to deal with Parallel execution on the TS side and a considerable amount of data that potentially will flood the ethernet.
My suggestion is to carefully design the Client/Server architecture.
I'd use a structure that will enable opening a series of connection in the setup section and closing it in the cleanup. Then I'd build up a custom step type that given the connection and the command will write it. Then it's your choice it the command take always the same time to execute and are supposed to be executed in a sequence the custom step will also wait for the answer. Otherwise you have to figure out wich is the better way to wait for the result.
Please note I may be in my suggestion wrong, I don't have enough info and I can't help you further than this.
Bottom line my final suggestion is.
Take a breath and feed yourself with the following philosophical question.
Given the Hardware Can it be run this fast ?
It has to be sequential or parallel ?
May I send more command in a row and then wait for all the ansewer toghether ?
Will the answer arrive in the same order ? or they'll be messed Up ?
What will happen if one of the anser times out ?
And so on and so on, long before writing a single line of code.
You'll eventyally get out of it with a bunch of specs and schemes that will help you design a robust test framework.
Good Work!
And have a good day