1 # Description: 2 # MPI based communication interfaces and implementations for TensorFlow. 3 4 package(default_visibility = [ 5 "//tensorflow:__subpackages__", 6 ]) 7 8 licenses(["notice"]) # Apache 2.0 9 10 exports_files(["LICENSE"]) 11 12 filegroup( 13 name = "all_files", 14 srcs = glob( 15 ["**/*"], 16 exclude = [ 17 "**/METADATA", 18 "**/OWNERS", 19 ], 20 ), 21 visibility = ["//tensorflow:__subpackages__"], 22 ) 23 24 filegroup( 25 name = "c_srcs", 26 data = glob([ 27 "**/*.cc", 28 "**/*.h", 29 ]), 30 ) 31 32 # For platform specific build config 33 load( 34 "//tensorflow/core:platform/default/build_config.bzl", 35 "tf_proto_library_cc", 36 ) 37 38 tf_proto_library_cc( 39 name = "mpi_msg_proto", 40 srcs = ["mpi_msg.proto"], 41 cc_api_version = 2, 42 protodeps = ["//tensorflow/core:worker_proto"], 43 visibility = [ 44 "//tensorflow:__subpackages__", 45 ], 46 ) 47 48 cc_library( 49 name = "mpi_utils", 50 srcs = ["mpi_utils.cc"], 51 hdrs = ["mpi_utils.h"], 52 deps = [ 53 "//tensorflow/core:core_cpu_internal", 54 "//tensorflow/core:framework", 55 "//tensorflow/core:lib", 56 "//third_party/mpi", 57 ], 58 ) 59 60 cc_library( 61 name = "mpi_rendezvous_mgr", 62 srcs = ["mpi_rendezvous_mgr.cc"], 63 hdrs = ["mpi_rendezvous_mgr.h"], 64 deps = [ 65 ":mpi_msg_proto_cc", 66 ":mpi_utils", 67 "//tensorflow/core:core_cpu_internal", 68 "//tensorflow/core:framework", 69 "//tensorflow/core:gpu_runtime", 70 "//tensorflow/core:lib", 71 "//tensorflow/core:protos_cc", 72 "//tensorflow/core:worker_proto_cc", 73 "//tensorflow/core/distributed_runtime:base_rendezvous_mgr", 74 "//tensorflow/core/distributed_runtime:recent_request_ids", 75 "//tensorflow/core/distributed_runtime:request_id", 76 "//tensorflow/core/distributed_runtime:session_mgr", 77 "//tensorflow/core/distributed_runtime:tensor_coding", 78 "//tensorflow/core/distributed_runtime:worker_env", 79 "//third_party/mpi", 80 ], 81 ) 82 83 cc_library( 84 name = "mpi_server_lib", 85 srcs = ["mpi_server_lib.cc"], 86 hdrs = ["mpi_server_lib.h"], 87 linkstatic = 1, # Seems to be needed since alwayslink is broken in bazel 88 deps = [ 89 ":mpi_rendezvous_mgr", 90 "//tensorflow/core/distributed_runtime/rpc:grpc_server_lib", 91 ], 92 alwayslink = 1, 93 ) 94