question

Eric R4 avatar image
0 Likes"
Eric R4 asked Eric R4 commented

"Clear Out Object's Content" on Queue is making model run very slow?

@Joseph Gillespie

Concerning my attached model, you helped me setup the Process Flow. I added 3 Sink's off of each Processor to keep the model working (so the Processor's don't back up from the downstream batch process). Each Sink, on entry, sends a message back to the Queue which triggers the queue to "clear out object's content". I am doing this to make the model realistic (I don't want to accrue time when the items are being sent to the sink, because there is no sink in reality).

The good news is that the model is working and it is exactly what I wanted this simulation to do! The bad news is that since I added these new triggers (between the 3 sinks and the 3 queue's), the model run speed is very, very, slow (too slow to be used). Why is this so slow? And how could I speed this up? I know it is the recent triggers that slows it down because if you remove the "send messages" from the sinks, you can observe that the model run time speeds up dramatically. The model really starts slowing down around 40 min run time.

Thanks for any assistance you can provide. As an FYI, my computer at least meets the minimum requirements recommended by Flexsim (I can give you details if you desire).

Regards,

Eric

dl-3-filter-1-pump-model-v10.fsm

FlexSim 19.1.1
queiu trigger
· 4
5 |100000

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

Eric R4 avatar image Eric R4 commented ·

@Joseph Gillespie

My apologies, I may be stretching my capabilities for 1 of my first models. Maybe I'll try that, switch to a different fill whenever my items move to the sink.

As I originally stated, this model is actually working perfectly, it is just a run-time issue. Maybe I should just rebuild the model and choose different units. I am using "lb" and "min". I will keep the "min", but maybe I could replace the "lb" with something else. "Ton" is a a little too extreme because it is 3 orders of magnitude larger than a "lb". Maybe an intermediate unit would work. I could even make up a unit like 10*lb or 100*lb (and convert outside of the model). I could choose "gal" for example and pretend 1 gal = 10*lb or 100*lb. Your original comment was, to paraphrase, the model can't handle 10,499 items being cleared out hundreds of times per second. If instead of 10,499 it was 1,049.9 or even 104.99, would you expect this to improve the model speed substantially?

I will try this first, later this morning. If it doesn't work, then I will try what you suggest below. If you have any thoughts on this, please let me know?

Thanks?

Regards,

Eric

0 Likes 0 ·
Show more comments
Eric R4 avatar image Eric R4 commented ·

@Joseph Gillespie

Thanks for the response. FYI, the model you added is very interesting. FYI, it doesn't work. Whenever I run it time will not progress and it throws errors. I am curious to see this run though, for learning purposes.

In terms of my specific model, I think I got it. I ended up doing what I said. I ended up changing the batch sizes and processing rates by 2 orders of magnitude (divide by 100). So essentially, instead of using the units=pound, I am using hectopound (if there is such a thing), where 1 hectopound = 100 pounds, or 1 hlb = 100 lb. By doing this, my model runs 10,000 min in about 15 seconds. The model is now running about 80,000 times faster!!!!!! I would have never imagined a 2 orders of magnitude change in my # of items resulting in a 4 or 5 orders of magnitude processing speed! I've attached it below. It is the exact same model as the original attachment, except I changed the batch sizes and processor rates. The only downside to this is that I have to remember to multiply all my results by 100 to convert back into lbs. I think I am good and can move on with this model, thank you for all of your help.

Regards,

Eric

dl-3-filter-1-pump-model-v11.fsm

0 Likes 0 ·
Show more comments

1 Answer

Joseph Gillespie avatar image
0 Likes"
Joseph Gillespie answered Eric R4 commented

@Eric R4

The problem with the model after 40 minutes is that it gets so backed up, the items are getting sent to the sinks every time. When that happens, every time an item is processed, all of the items in the queue (up to 10499) are being cleared out and immediately replaced. That is a lot of items to eliminate and re-create, and at the speeds you have the model running, this process is happening hundreds of times per second.

I would recommend adding queues after your processors like in this model: filterpumpmodelwithqueues.fsm

That way, you keep the items that have already been processed and they do not get in the way of new items being processed.


· 3
5 |100000

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

Eric R4 avatar image Eric R4 commented ·

@Joseph Gillespie

Thanks for the response. I understand what you are saying. Adding these queue's would help a lot. The problem though, is that they add a wide-spot buffer that makes the model unrepresentative of the real process that I am trying to simulate. Model cycle times (of the filters) are a lot faster than reality.

I have another approach, I just don't know how to do it. I've reattached the original model (except I removed the Sink messages to the queue's to "clear out object's contents". This model is able to run at a great runtime all the way up to 10,080 min (1 week), which was my goal (it does not get bogged down).

In this model, my 3 processors have 4 outlet ports, each. Is there a way to specify the "process time" for each outlet port? Specifically, I would like to speed up the "process time" when going to the sink.

Thanks again!

Regards,

Eric

dl-3-filter-1-pump-model-v10-removed-clear-out-que.fsm

0 Likes 0 ·
Joseph Gillespie avatar image Joseph Gillespie commented ·

@Eric R4

Processors decide which output port to send items to when they are done processing and not before, so your solution would not be possible.

Sorry if I'm not giving you good solutions to this, I'm still trying to understand exactly what you are trying to do here. Maybe you could set it up so that when an item enters a sink the model switches to a different fill? Though even with that solution it may slow down the model because it inevitably everything will get backed up and it will get stuck switching fills repeatedly as all three fills will be blocked.

0 Likes 0 ·
Eric R4 avatar image Eric R4 commented ·
0 Likes 0 ·