16 #ifndef INCLUDED_protocols_elscripts_Master_hh
17 #define INCLUDED_protocols_elscripts_Master_hh
23 #include <boost/date_time/posix_time/posix_time_types.hpp>
28 void lregister_Master( lua_State * lstate );
30 class Master :
public BaseRole {
34 Master(
int num_trajectories = 1, boost::uint64_t mem_limit=2147483648, boost::uint64_t reserved_mem=104857600, boost::uint64_t reserved_mem_multiplier=5 );
39 boost::uint64_t available_mem() {
40 boost::uint64_t buff_mem =
41 slave_comm_->current_mem() +
42 reserved_mem_ * reserved_mem_multiplier_ +
44 if( buff_mem >= mem_limit_ ) {
47 return mem_limit_ - buff_mem;
57 void make_wu_until_limit(
std::string const & wuname,
int num);
67 boost::uint64_t current_mem() {
72 virtual int inputter_rank() {
80 void fill_trajectories();
82 void update_trajectories_mem();
83 boost::uint64_t trajectories_mem() {
return trajectories_mem_; }
88 int num_trajectories_;
90 boost::uint64_t trajectories_mem_;
92 int num_trajectories_finished_;
100 boost::posix_time::ptime last_generate_initial_wu_time_;