24 #ifndef GRAPHLAB_OMNI_ENGINE_HPP
25 #define GRAPHLAB_OMNI_ENGINE_HPP
29 #include <graphlab/options/graphlab_options.hpp>
31 #include <graphlab/engine/iengine.hpp>
32 #include <graphlab/engine/synchronous_engine.hpp>
33 #include <graphlab/engine/async_consistent_engine.hpp>
34 #include <graphlab/engine/semi_synchronous_engine.hpp>
83 template<
typename VertexProgram>
186 const std::string& default_engine_type,
190 std::string engine_type = default_engine_type;
192 if(engine_options.
get_option(
"type", engine_type)) {
195 engine_options.options.erase(
"type");
198 if(engine_type ==
"sync" || engine_type ==
"synchronous") {
199 logstream(
LOG_INFO) <<
"Using the Synchronous engine." << std::endl;
201 }
else if(engine_type ==
"async" || engine_type ==
"asynchronous") {
202 logstream(
LOG_INFO) <<
"Using the Synchronous engine." << std::endl;
204 }
else if(engine_type ==
"semi" || engine_type ==
"semisynchronous") {
205 logstream(
LOG_INFO) <<
"Using the Semi Synchronous engine." << std::endl;
208 logstream(
LOG_FATAL) <<
"Invalid engine type: " << engine_type << std::endl;
217 if(engine_ptr != NULL) {
218 delete engine_ptr; engine_ptr = NULL;
229 engine_ptr->
signal(vertex, message);
232 const std::string& order =
"shuffle") {
237 const std::string& order =
"shuffle") {
242 aggregator_type* get_aggregator() {
return engine_ptr->get_aggregator(); }