question

Ryosuke S avatar image
0 Likes"
Ryosuke S asked Felix Möhlmann commented

Dispatch operator in group

Is there anyway to dispatch operator in group?

I've created layout where there are 4 multiprocessor in the layout. 3 processes are defined in each mutiprocessor.

Process1 requires 3 operator. In this layout, there are 3 groups and 3 operator assigned to each group to do Process1. Group is controlled with dispatcher, each dispatcher (describing group) is controlled by dispatcher.

1671613585372.png

When Dispatcher 4 "Pass To" is defined as "first available", the first group goes to first multiprocessor, but when second multiprocessor requests for operator, nothing happens.

When Dispatcher 4 "Pass To" is defined as "Round Robin", each member from each group goes to first multiprocessor. This is not the behavior I expected.

How can I make 3 operator in same group work in mutliprocessor?

multiprocessor_sample.fsm

FlexSim 22.2.2
operatorsmultiprocessordispatchers
· 1
5 |100000

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

Andrew O avatar image Andrew O commented ·

Hi @Ryosuke S, was Jason Lightfoot's answer helpful? If so, please click the "Accept" button at the bottom of their answer. Or if you still have questions, add a comment and we'll continue the conversation.

If we haven't heard back from you within 3 business days we'll auto-accept an answer, but you can always unaccept and comment back to reopen your question.

0 Likes 0 ·

1 Answer

Jason Lightfoot avatar image
0 Likes"
Jason Lightfoot answered Felix Möhlmann commented

It seems you should connect each multiprocessor to the relevant dispatcher for the group that should do the work rather than one dispatcher. The reason is that the multiprocessor is sending 3 independant Travel, stop_request_finish tasks rather than one coordinated task sequence.

· 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.

Ryosuke S avatar image Ryosuke S commented ·

@Jason Lightfoot Is this what you mean? Please see attached. sample.fsm

0 Likes 0 ·
sample.fsm (52.7 KiB)
Jason Lightfoot avatar image Jason Lightfoot ♦♦ Ryosuke S commented ·
Does that do what you want - where are the mutliprocessors? I meant 3 dispatchers and each multiprocessor connected to a different one.
0 Likes 0 ·
Ryosuke S avatar image Ryosuke S commented ·

@Jason Lightfoot Oh, my apology. I think my mind was already on vacation at the time. This is the file which I wanted to show.

multiprocessor-sample2.fsm

0 Likes 0 ·
Felix Möhlmann avatar image Felix Möhlmann Ryosuke S commented ·
Functionally, what you have build is mostly the same as if all processors connected to a single, shared dispatcher.

This will work as long as the connected operators are always used in groups of 3. Since either a whole group would be available or busy (in which case the next three would be chosen), there shouldn't be any case that causes the groups to mix.

If single operators from a group might be busy with other tasks, so that the other group members would have to wait until they are finished, you would need a more sophisticated logic. For that I would recommend to use a list with a field that counts how many members of the respective group are available and then filter for operators where the entire group is free.
0 Likes 0 ·