def METHOD_NAME(self):
    if self.contribution_assessor_mgr is None:
        return
    # TODO: start to run contribution assessment in an independent python process
    client_num_per_round = len(Context().get(Context.KEY_CLIENT_ID_LIST_IN_THIS_ROUND))
    client_index_for_this_round = Context().get(Context.KEY_CLIENT_ID_LIST_IN_THIS_ROUND)
    local_weights_from_clients = Context().get(Context.KEY_CLIENT_MODEL_LIST)
    metric_results_in_the_last_round = Context().get(Context.KEY_METRICS_ON_LAST_ROUND)
    (acc_on_last_round, _, _, _) = metric_results_in_the_last_round
    metric_results_on_aggregated_model = Context().get(Context.KEY_METRICS_ON_AGGREGATED_MODEL)
    (acc_on_aggregated_model, _, _, _) = metric_results_on_aggregated_model
    test_data = Context().get(Context.KEY_TEST_DATA)
    validation_func = self.test
    self.contribution_assessor_mgr.run(
        client_num_per_round,
        client_index_for_this_round,
        FedMLAggOperator.agg,
        local_weights_from_clients,
        acc_on_last_round,
        acc_on_aggregated_model,
        test_data,
        validation_func,
        self.args.device,
    )
    if self.args.round_idx == self.args.comm_round - 1:
        self.final_contribution_assigment_dict = self.contribution_assessor_mgr.get_final_contribution_assignment()
        logging.info(
            "self.final_contribution_assigment_dict = {}".format(self.final_contribution_assigment_dict))