/home/coin/SVN-release/OS-2.1.0/Bcp/src/TM/BCP_tm_msgproc.cpp File Reference

#include "CoinTime.hpp"
#include "BCP_math.hpp"
#include "BCP_node_change.hpp"
#include "BCP_tm.hpp"
#include "BCP_lp.hpp"
#include "BCP_tm_functions.hpp"
#include "BCP_problem_core.hpp"
#include "BCP_solution.hpp"
#include "BCP_tm_user.hpp"

Include dependency graph for BCP_tm_msgproc.cpp:

Go to the source code of this file.

Functions

static void BCP_tm_change_config (BCP_tm_prob &p, BCP_buffer &buf)
void BCP_tm_idle_processes (BCP_tm_prob &p)
void BCP_tm_stop_processes (BCP_tm_prob &p)
void BCP_tm_start_processes (BCP_tm_prob &p)
void BCP_tm_notify_about_new_phase (BCP_tm_prob &p)
template<typename T>
void BCP_tm_initialize_process_type (BCP_tm_prob &p, BCP_process_t ptype, BCP_parameter_set< T > &par, int num, const int *pids)
template<typename T>
void BCP_tm_initialize_process_type (BCP_tm_prob &p, BCP_process_t ptype, BCP_parameter_set< T > &par, const std::vector< int > &pids)
void BCP_tm_notify_process_type (BCP_tm_prob &p, BCP_process_t ptype, int num, const int *pids)
void BCP_tm_notify_process_type (BCP_tm_prob &p, BCP_process_t ptype, const std::vector< int > &pids)
void BCP_tm_notify_processes (BCP_tm_prob &p)
void BCP_tm_broadcast_ub (BCP_tm_prob &p)
void BCP_tm_rebroadcast_root_warmstart (BCP_tm_prob &p)
void BCP_tm_provide_SB_processes (BCP_tm_prob &p)
bool BCP_tm_test_machine (BCP_tm_prob &p)
void BCP_tm_modify_pool_counters (BCP_tm_prob &p, BCP_tm_node *node)
void BCP_tm_remove_lp (BCP_tm_prob &p, const int dead_pid)
void BCP_tm_remove_cg (BCP_tm_prob &p, const int index)
void BCP_tm_remove_vg (BCP_tm_prob &p, const int index)
void BCP_tm_unpack_priced_root (BCP_tm_prob &p, BCP_buffer &buf)
void BCP_tm_free_procs_of_node (BCP_tm_prob &p, BCP_tm_node *node)


Function Documentation

static void BCP_tm_change_config ( BCP_tm_prob p,
BCP_buffer buf 
) [static]

Definition at line 706 of file BCP_tm_msgproc.cpp.

References BCP_CONFIG_ERROR, BCP_CONFIG_OK, BCP_ProcessType_CG, BCP_ProcessType_CP, BCP_ProcessType_LP, BCP_ProcessType_VG, BCP_ProcessType_VP, BCP_tm_notify_process_type(), BCP_tm_par::DebugCgProcesses, BCP_tm_par::DebugCpProcesses, BCP_tm_par::DebugLpProcesses, BCP_tm_par::DebugVgProcesses, BCP_tm_par::DebugVpProcesses, BCP_tm_par::ExecutableName, lp, BCP_tm_prob::msg_env, BCP_tm_prob::param(), BCP_message_environment::send(), BCP_buffer::sender(), BCP_message_environment::start_processes(), and BCP_buffer::unpack().

Referenced by BCP_tm_prob::process_message().

void BCP_tm_idle_processes ( BCP_tm_prob p  ) 

Definition at line 19 of file BCP_tm_msgproc.cpp.

References BCP_Msg_FinishedBCP, BCP_tm_prob::lp_procs, BCP_tm_prob::msg_env, and BCP_message_environment::multicast().

Referenced by BCP_tm_main().

void BCP_tm_stop_processes ( BCP_tm_prob p  ) 

Definition at line 27 of file BCP_tm_msgproc.cpp.

References BCP_Msg_FinishedBCP, BCP_tm_prob::lp_procs, BCP_tm_prob::msg_env, and BCP_message_environment::multicast().

Referenced by BCP_tm_main().

void BCP_tm_start_processes ( BCP_tm_prob p  ) 

Definition at line 35 of file BCP_tm_msgproc.cpp.

References BCP_scheduler::add_free_ids(), BCP_tm_par::CgMachines, BCP_tm_par::CgProcessNum, BCP_tm_par::CpMachines, BCP_tm_par::CpProcessNum, BCP_tm_par::DebugCgProcesses, BCP_tm_par::DebugCpProcesses, BCP_tm_par::DebugLpProcesses, BCP_tm_par::DebugVgProcesses, BCP_tm_par::DebugVpProcesses, BCP_tm_par::ExecutableName, BCP_tm_prob::lp_procs, BCP_tm_prob::lp_scheduler, BCP_tm_par::LpMachines, BCP_tm_par::LpProcessNum, BCP_tm_prob::msg_env, BCP_tm_prob::param(), BCP_vec< T >::size(), BCP_message_environment::start_processes(), BCP_tm_par::VgMachines, BCP_tm_par::VgProcessNum, BCP_tm_par::VpMachines, and BCP_tm_par::VpProcessNum.

Referenced by BCP_tm_main().

void BCP_tm_notify_about_new_phase ( BCP_tm_prob p  ) 

Definition at line 110 of file BCP_tm_msgproc.cpp.

References BCP_Msg_NextPhaseStarts, BCP_tm_prob::lp_procs, BCP_tm_prob::msg_env, and BCP_message_environment::multicast().

Referenced by BCP_tm_tasks_before_new_phase().

template<typename T>
void BCP_tm_initialize_process_type ( BCP_tm_prob p,
BCP_process_t  ptype,
BCP_parameter_set< T > &  par,
int  num,
const int *  pids 
)

Definition at line 119 of file BCP_tm_msgproc.cpp.

References BCP_Msg_CoreDescription, BCP_Msg_InitialUserInfo, BCP_Msg_ProcessParameters, BCP_Msg_ProcessType, BCP_buffer::clear(), BCP_tm_prob::core, BCP_tm_prob::msg_buf, BCP_tm_prob::msg_env, BCP_message_environment::multicast(), BCP_problem_core::pack(), BCP_parameter_set< Par >::pack(), BCP_buffer::pack(), BCP_tm_user::pack_module_data(), BCP_tm_prob::start_time, BCP_tm_prob::ub(), and BCP_tm_prob::user.

Referenced by BCP_tm_initialize_process_type(), and BCP_tm_notify_process_type().

template<typename T>
void BCP_tm_initialize_process_type ( BCP_tm_prob p,
BCP_process_t  ptype,
BCP_parameter_set< T > &  par,
const std::vector< int > &  pids 
)

Definition at line 152 of file BCP_tm_msgproc.cpp.

References BCP_tm_initialize_process_type().

void BCP_tm_notify_process_type ( BCP_tm_prob p,
BCP_process_t  ptype,
int  num,
const int *  pids 
)

Definition at line 163 of file BCP_tm_msgproc.cpp.

References BCP_ProcessType_CG, BCP_ProcessType_CP, BCP_ProcessType_LP, BCP_ProcessType_TS, BCP_ProcessType_VG, BCP_ProcessType_VP, and BCP_tm_initialize_process_type().

void BCP_tm_notify_process_type ( BCP_tm_prob p,
BCP_process_t  ptype,
const std::vector< int > &  pids 
)

Definition at line 201 of file BCP_tm_msgproc.cpp.

References BCP_tm_notify_process_type().

void BCP_tm_notify_processes ( BCP_tm_prob p  ) 

Definition at line 210 of file BCP_tm_msgproc.cpp.

References BCP_ProcessType_CG, BCP_ProcessType_CP, BCP_ProcessType_LP, BCP_ProcessType_VG, BCP_ProcessType_VP, BCP_tm_notify_process_type(), and BCP_tm_prob::lp_procs.

Referenced by BCP_tm_main().

void BCP_tm_broadcast_ub ( BCP_tm_prob p  ) 

Definition at line 224 of file BCP_tm_msgproc.cpp.

References BCP_Msg_UpperBound, BCP_buffer::clear(), BCP_tm_prob::lp_procs, BCP_tm_prob::msg_buf, BCP_tm_prob::msg_env, BCP_message_environment::multicast(), BCP_buffer::pack(), and BCP_tm_prob::ub().

Referenced by BCP_tm_prob::process_message().

void BCP_tm_rebroadcast_root_warmstart ( BCP_tm_prob p  ) 

Definition at line 237 of file BCP_tm_msgproc.cpp.

References BCP_Msg_WarmstartRoot, BCP_buffer::clear(), BCP_tm_prob::lp_procs, BCP_tm_prob::msg_buf, BCP_tm_prob::msg_env, BCP_message_environment::multicast(), BCP_user_pack::pack_warmstart(), BCP_tm_prob::packer, BCP_user_pack::unpack_warmstart(), and ws.

Referenced by BCP_tm_prob::process_message().

void BCP_tm_provide_SB_processes ( BCP_tm_prob p  ) 

Definition at line 252 of file BCP_tm_msgproc.cpp.

References BCP_Msg_ProcessList, BCP_buffer::clear(), BCP_tm_prob::lp_scheduler, BCP_tm_prob::msg_buf, BCP_tm_prob::msg_env, BCP_buffer::pack(), BCP_scheduler::request_sb_ids(), BCP_message_environment::send(), BCP_buffer::sender(), and BCP_buffer::unpack().

Referenced by BCP_tm_prob::process_message().

bool BCP_tm_test_machine ( BCP_tm_prob p  ) 

Definition at line 521 of file BCP_tm_msgproc.cpp.

References BCP_message_environment::alive(), BCP_tm_remove_cg(), BCP_tm_remove_lp(), BCP_tm_remove_vg(), and BCP_tm_prob::msg_env.

Referenced by BCP_tm_prob::process_message().

void BCP_tm_modify_pool_counters ( BCP_tm_prob p,
BCP_tm_node node 
)

Definition at line 569 of file BCP_tm_msgproc.cpp.

References BCP_tm_identify_process(), BCP_tm_node::cp, BCP_vec< T >::end(), BCP_tm_prob::leaves_per_cp, BCP_tm_prob::leaves_per_vp, and BCP_tm_node::vp.

Referenced by BCP_tm_free_nodes().

void BCP_tm_remove_lp ( BCP_tm_prob p,
const int  dead_pid 
)

Definition at line 602 of file BCP_tm_msgproc.cpp.

References BCP_tm_prob::active_nodes, BCP_CandidateNode, BCP_tm_identify_process(), BCP_tm_prob::candidate_list, BCP_tm_node::cg, BCP_tm_node::cp, BCP_vec< T >::end(), BCP_tm_prob::leaves_per_cp, BCP_tm_prob::leaves_per_vp, BCP_tm_node::lp, BCP_tm_node::status, BCP_tm_node::vg, and BCP_tm_node::vp.

Referenced by BCP_tm_assign_processes(), BCP_tm_remove_cg(), BCP_tm_remove_vg(), and BCP_tm_test_machine().

void BCP_tm_remove_cg ( BCP_tm_prob p,
const int  index 
)

Definition at line 655 of file BCP_tm_msgproc.cpp.

References BCP_tm_remove_lp().

Referenced by BCP_tm_assign_processes(), and BCP_tm_test_machine().

void BCP_tm_remove_vg ( BCP_tm_prob p,
const int  index 
)

Definition at line 662 of file BCP_tm_msgproc.cpp.

References BCP_tm_remove_lp().

Referenced by BCP_tm_assign_processes(), and BCP_tm_test_machine().

void BCP_tm_unpack_priced_root ( BCP_tm_prob p,
BCP_buffer buf 
)

Definition at line 672 of file BCP_tm_msgproc.cpp.

References BCP_tm_prob::active_nodes, BCP_tm_free_procs_of_node(), BCP_tm_prob::flags, BCP_tm_node::lp, BCP_tree::root(), BCP_tm_flags::root_pricing_unpacked, and BCP_tm_prob::search_tree.

void BCP_tm_free_procs_of_node ( BCP_tm_prob p,
BCP_tm_node node 
)

Definition at line 690 of file BCP_tm_msgproc.cpp.

References BCP_tm_node::cg, BCP_tm_node::lp, BCP_tm_prob::lp_scheduler, BCP_scheduler::release_node_id(), and BCP_tm_node::vg.

Referenced by BCP_tm_unpack_branching_info(), BCP_tm_unpack_node_no_branching_info(), and BCP_tm_unpack_priced_root().


Generated on Tue Mar 30 03:06:10 2010 by  doxygen 1.4.7