Skip to main content
. 2024 Sep 26;24(19):6244. doi: 10.3390/s24196244
Algorithm 2 Suggest optimal pod placement using coupling and dependency
  • Require: 

    DataFrame counts_df, DataFrame dep_df, List of Nodes nodes, Mean Threshold mean_threshold, Weight X, Weight Y

  • Ensure: 

    Optimal Pod Placement placement

  • 1:

     norm_counts_dfcounts_df/counts_df.values.max()

  • 2:

     norm_dep_dfdep_df/dep_df.values.max()

  • 3:

     combined_dfX×norm_counts_df+Y×norm_dep_df

  • 4:

     sorted_pods Sort pods by total communication and coupling count in descending order

  • 5:

     for each pod1 in combined_df.index do

  • 6:

         for each pod2 in combined_df.columns do

  • 7:

           if pod1pod2 and combined_df.at[pod1,pod2]>mean_threshold then

  • 8:

              Append (pod1,pod2,combined_df.at[pod1,pod2]) to pod_dependencies

  • 9:

           end if

  • 10:

       end for

  • 11:

    end for

  • 12:

    Sort pod_coupling by combined count in descending order

  • 13:

    for each i,pod in enumerate(sorted_pods) do

  • 14:

       nodenodes[i%len(nodes)]

  • 15:

       Append pod to placement[node]

  • 16:

    end for

  • 17:

    for each (pod1,pod2,count) in pod_coupling do

  • 18:

       node1 Node containing pod1 in placement

  • 19:

       node2 Node containing pod2 in placement

  • 20:

       if node1node2 then

  • 21:

         if len(placement[node1])<len(placement[node2]) then

  • 22:

            Move pod2 to node1

  • 23:

            Remove pod2 from node2

  • 24:

         else

  • 25:

            Move pod1 to node2

  • 26:

            Remove pod1 from node1

  • 27:

         end if

  • 28:

       end if

  • 29:

    end for

  • 30:

    return  placement