question

Willie Chung avatar image
0 Likes"
Willie Chung asked Willie Chung commented

Using uniform distribution in Processtime as a parameter in experimenter ?

Hello guys


I want to observe the completion time of a duplicated process with two-stage machine's processtime set to a "uniform distribution" in the Experimenter.

However, when I was setting up the parameters, I find other articles mentioning using "option" for configuration. So, I tried to make the relevant settings, but it seems there might be an problem with the Parameter based on the results in the Experimenter.


1695913808197.png


Could you please provide me with some advice or improvement methods? Thank you.

experimenter_processtime parameter.fsm

FlexSim 23.0.0
experimenterdistributionparameterparameter value types
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

1 Answer

Kavika F avatar image
0 Likes"
Kavika F answered Willie Chung commented

Hey @Willie Chung, I think your issue comes from your Performance Measure.

1695920580727.png

Your value is "time()", which will be the same every time you run the experimenter. If you change it to be something more useful, like Sink Input, then you'll get different results.

experimenter-processtime-parameter_1.fsm


· 9
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Willie Chung avatar image Willie Chung commented ·

Thank you!

But I want to observe the makespan each duplication in experiment , and the the processtime is a stastical distribution, so I set the machine's processtime as a parameter, the result it seem doesn't work,

I think the cause is parameter setting, how can I setting processtime in stastical distribution as a parameter, the result I want to be like the picture below, thanks


1695941797791.png


0 Likes 0 ·
1695941797791.png (30.3 KiB)
Joerg Vogel avatar image Joerg Vogel Willie Chung commented ·
You can set a statistical distribution to be a process time. You can evaluate this process time indirectly by staytime or directly by writing this returned value before the return code line gets executed in process time source code into a node like a label to be accessible in an experiment.
0 Likes 0 ·
Willie Chung avatar image Willie Chung commented ·

Dear @Kavika F @Joerg Vogel @Jason Lightfoot

Thanks you so much, My model run successfully.

But my purpose is to get the system execution time per duplication in experiment, I create 100 Flowiten in expontial distribution and the less time ther better like pic1

So I think @Kavika F is right, the result doesn't change because the stop time is 3600, what are the ways to collect system execution time each duplication in experiment? Is it set from the Experimenter or I need to change the Performance Measurement's value? Can you provide me with some advice and solutions?

New file: experimenter_processtime parameter.fsm

1.png

1695981399808.png


I accidentally deleted @Jason Lightfoot comment, I'm very sorry.

0 Likes 0 ·
Jason Lightfoot avatar image Jason Lightfoot ♦♦ Willie Chung commented ·

Here's what I wrote:

You could use the creation time of each item to find the each makespan:

time()-get(stats_creationtime(item))

Alternatively put a label (eg. processStartTime) on the item at the start of the first process (removing the waiting time in the first queue) and set the tracked variable to :

time()-item.processStartTime

then in your performance measure read the tracked variable using this for the value:

return reference.as(TrackedVariable).average


To get a varying replication length you need to put a longer stop time than it will possibly need and when the items are finished call endreplication();

0 Likes 0 ·
Willie Chung avatar image Willie Chung Jason Lightfoot ♦♦ commented ·

Hi @Jason Lightfoot

As mentioned above , my purpose is to get the system execution time per duplication in experiment, I create 100 Flowiten in expontial distribution and in system execution, the faster it completes, the better.

How can I collect system execution time each duplication in experiment? Is it set from the Experimenter or I need to change the Performance Measurement's value?

0 Likes 0 ·
Show more comments
Willie Chung avatar image Willie Chung commented ·

Sorry I think you are right. And I have two question

1.As you say" the same every time I run the experimenter ", but the machine's processtime and source producion is in stastical distribution, why the result always the same.

2.Because I want to observe the system execution time each duplication, the less time, the better, so the value I set is time() or how can I do to observe the system execution time each duplication.

Thanks for your help


1695996289090.png


0 Likes 0 ·
1695996289090.png (31.4 KiB)
Jason Lightfoot avatar image Jason Lightfoot ♦♦ Willie Chung commented ·

The performance measure can just be time() if you end the replication when all your items are complete. To do that you'll need to detect an event like sink entry and count how many have entered.

0 Likes 0 ·
Willie Chung avatar image Willie Chung commented ·

Thank you so much, it run successfully~.

0 Likes 0 ·