6 #ifndef TURI_LAMBDA_PYLAMBDA_EVALUATOR_HPP 7 #define TURI_LAMBDA_PYLAMBDA_EVALUATOR_HPP 8 #include <core/system/lambda/lambda_interface.hpp> 9 #include <core/data/flexible_type/flexible_type.hpp> 10 #include <core/system/lambda/python_callbacks.hpp> 11 #include <core/parallel/pthread_tools.hpp> 28 bool skip_undefined =
false;
42 bool skip_undefined =
false;
47 const std::vector<std::string>* input_keys =
nullptr;
48 const std::vector<std::vector<flexible_type> >* input_rows =
nullptr;
56 bool skip_undefined =
false;
58 const std::vector<std::string>* input_keys =
nullptr;
67 const std::vector<std::vector<flexible_type> >* all_edge_data;
68 std::vector<std::vector<flexible_type> >* out_edge_data;
70 std::vector<std::vector<flexible_type> >* source_partition;
71 std::vector<std::vector<flexible_type> >* target_partition;
74 const std::vector<std::string>* vertex_keys;
75 const std::vector<std::string>* edge_keys;
76 const std::vector<std::string>* mutated_edge_keys;
77 size_t srcid_column, dstid_column;
81 struct pylambda_evaluation_functions {
82 void (*set_random_seed)(
size_t seed);
83 size_t (*init_lambda)(
const std::string&);
84 void (*release_lambda)(size_t);
94 void set_pylambda_evaluation_functions(pylambda_evaluation_functions* eval_function_struct);
96 extern pylambda_evaluation_functions evaluation_functions;
103 size_t make_lambda(
const std::string& pylambda_str);
108 void release_lambda(
size_t lambda_hash);
136 m_shared_memory_server = shared_memory_server;
146 std::string initialize_shared_memory_comm();
151 void set_lambda(
size_t lambda_hash);
158 size_t make_lambda(
const std::string& pylambda_str);
163 void release_lambda(
size_t lambda_hash);
178 std::vector<flexible_type> bulk_eval(
size_t lambda_hash,
const std::vector<flexible_type>& args,
179 bool skip_undefined, uint64_t
seed);
187 std::vector<flexible_type> bulk_eval_rows(
size_t lambda_hash,
194 std::vector<flexible_type> bulk_eval_dict(
size_t lambda_hash,
195 const std::vector<std::string>&
keys,
196 const std::vector<std::vector<flexible_type>>& values,
197 bool skip_undefined, uint64_t seed);
203 std::vector<flexible_type> bulk_eval_dict_rows(
size_t lambda_hash,
204 const std::vector<std::string>& keys,
206 bool skip_undefined, uint64_t seed);
217 std::vector<flexible_type> bulk_eval_rows_serialized(
const char* ptr,
size_t len);
221 volatile bool m_shared_memory_thread_terminating =
false;
std::set< Key > keys(const std::map< Key, T > &map)
std::set< T > values(const std::map< Key, T > &map)
pylambda_evaluator(turi::shmipc::server *shared_memory_server=nullptr)