def vFed(): initstring = "-f 1 --name=mainbroker" fedinitstring = "--broker=mainbroker --federates=1" deltat = 0.01 #TODO: should add an assert here about helicsGetVersion h.helicsGetVersion() # Create broker # broker = h.helicsCreateBroker("zmq", "", initstring) isconnected = h.helicsBrokerIsConnected(broker) if isconnected == 1: pass # Create Federate Info object that describes the federate properties # fedinfo = h.helicsCreateFederateInfo() # Set Federate name # h.helicsFederateInfoSetCoreName(fedinfo, "TestA Core") # Set core type from string # h.helicsFederateInfoSetCoreTypeFromString(fedinfo, "zmq") # Federate init string # h.helicsFederateInfoSetCoreInitString(fedinfo, fedinitstring) # Set the message interval (timedelta) for federate. Note th# # HELICS minimum message time interval is 1 ns and by default # it uses a time delta of 1 second. What is provided to the # setTimedelta routine is a multiplier for the default timedelta. # Set one second message interval # h.helicsFederateInfoSetTimeProperty(fedinfo, h.helics_property_time_delta, deltat) h.helicsFederateInfoSetIntegerProperty(fedinfo, h.helics_property_int_log_level, 1) vFed = h.helicsCreateValueFederate("TestA Federate", fedinfo) yield vFed h.helicsFederateFinalize(vFed) state = h.helicsFederateGetState(vFed) assert state == 3 while (h.helicsBrokerIsConnected(broker)): time.sleep(1) h.helicsFederateInfoFree(fedinfo) h.helicsFederateFree(vFed) h.helicsCloseLibrary()
def mFed(): initstring = "-f 1 --name=mainbroker" fedinitstring = "--broker=mainbroker --federates=1" deltat = 0.01 h.helicsGetVersion() # Create broker # broker = h.helicsCreateBroker("zmq", "", initstring) isconnected = h.helicsBrokerIsConnected(broker) if isconnected == 1: pass # Create Federate Info object that describes the federate properties # fedinfo = h.helicsCreateFederateInfo() # Set Federate name # h.helicsFederateInfoSetCoreName(fedinfo, "CoreA Federate") # Set core type from string # h.helicsFederateInfoSetCoreTypeFromString(fedinfo, "zmq") # Federate init string # h.helicsFederateInfoSetCoreInitString(fedinfo, fedinitstring) # Set the message interval (timedelta) for federate. Note th# # HELICS minimum message time interval is 1 ns and by default # it uses a time delta of 1 second. What is provided to the # setTimedelta routine is a multiplier for the default timedelta. # Set one second message interval # h.helicsFederateInfoSetTimeProperty(fedinfo, h.HELICS_PROPERTY_TIME_DELTA, deltat) h.helicsFederateInfoSetIntegerProperty(fedinfo, h.HELICS_PROPERTY_INT_LOG_LEVEL, 1) mFed = h.helicsCreateMessageFederate("TestA Federate", fedinfo) yield mFed h.helicsFederateFinalize(mFed) state = h.helicsFederateGetState(mFed) assert state == 3 while h.helicsBrokerIsConnected(broker): time.sleep(1) h.helicsFederateInfoFree(fedinfo) h.helicsFederateFree(mFed) h.helicsCloseLibrary()
def create_output_file(benchmark, output_path, filename, date, bm_dicts): """This function creates the output file, which contains some basic information, along with the benchmark results. Args: benchmark (str) - The name of the benchmark, e.g. echoBenchmark output_path (str) - The location to send the results. filename (str) - The name of the results file. date (datetime object) - The date and time of the benchmark run. bm_dicts (list) - The list of benchmark results. Returns: (null) """ helics_version = h.helicsGetVersion() cpu_freq = psutil.cpu_freq() # zmq_version = h.getZMQVersion() s, v, c = platform.system(), platform.version(), platform.python_compiler() compiler = "{}-{}:{}".format(s, v, c) build_flags_dict = sysconfig.get_config_vars() build_flags = (str(build_flags_dict.get("base")) + "\\" + "py{}".format(build_flags_dict.get("py_version"))) machine = platform.machine() # NOTE: To get the host name, do platform.node() # Creating the header string string = "HELICS_BENCHMARK: {}\n".format(benchmark) string += "------------HELICS BUILD INFO -------------\n" string += "HELICS VERSION: {}\n".format(helics_version) # string += 'ZMQ VERSION: {}\n'.format(zmq_version) string += "COMPILER INFO: {}\n".format(compiler) string += "BUILD FLAGS: {}\n".format(build_flags) string += "------------PROCESSOR INFO ----------------\n" string += "HOST PROCESSOR TYPE: {}\n".format(machine) string += "CPU MODEL: {}\n".format(cpuinfo.get_cpu_info().get("brand")) string += "NUM CPU: {}\n".format(multiprocessing.cpu_count()) string += "-------------------------------------------\n" bm_dict = { "context": { "date": date, "host_name": platform.node(), "executable": sys.executable, "num_cpus": multiprocessing.cpu_count(), "mhz_per_cpu": cpu_freq.max, "cpu_scaling_enabled": False, "caches": [], "load_avg": [], "library_build_type": "release", }, "benchmarks": bm_dicts, } bm_dict = json.dumps(bm_dict, indent=2) string += str(bm_dict) # Combing the header string with the benchmark dictionary with open("{}\\{}.txt".format(output_path, filename), "w") as output_file: output_file.write(string)
def helicsBroker(): initstring = "-f 1 --name=mainbroker" # TODO: should add an assert here about helicsGetVersion h.helicsGetVersion() # Create broker # broker = h.helicsCreateBroker("zmq", "", initstring) isconnected = h.helicsBrokerIsConnected(broker) if isconnected == 1: pass yield broker h.helicsBrokerFree(broker) h.helicsCloseLibrary()
def mFed(): import helics as h initstring = "1 --name=mainbroker" fedinitstring = "--broker=mainbroker --federates=1" deltat = 0.01 helicsversion = h.helicsGetVersion() # Create broker # broker = h.helicsCreateBroker("zmq", "", initstring) isconnected = h.helicsBrokerIsConnected(broker) if isconnected == 1: pass # Create Federate Info object that describes the federate properties # fedinfo = h.helicsFederateInfoCreate() # Set Federate name # status = h.helicsFederateInfoSetFederateName(fedinfo, "TestA Federate") # Set core type from string # status = h.helicsFederateInfoSetCoreTypeFromString(fedinfo, "zmq") # Federate init string # status = h.helicsFederateInfoSetCoreInitString(fedinfo, fedinitstring) # Set the message interval (timedelta) for federate. Note th# # HELICS minimum message time interval is 1 ns and by default # it uses a time delta of 1 second. What is provided to the # setTimedelta routine is a multiplier for the default timedelta. # Set one second message interval # status = h.helicsFederateInfoSetTimeDelta(fedinfo, deltat) status = h.helicsFederateInfoSetLoggingLevel(fedinfo, 1) mFed = h.helicsCreateMessageFederate(fedinfo) yield mFed status = h.helicsFederateFinalize(mFed) status, state = h.helicsFederateGetState(mFed) assert state == 3 while (h.helicsBrokerIsConnected(broker)): time.sleep(1) h.helicsFederateFree(mFed) h.helicsCloseLibrary()
def AddBroker(core_type="zmq", number_of_federates=1): initstring = "{} --name=mainbroker".format(number_of_federates) deltat = 0.01 helicsversion = h.helicsGetVersion() # Create broker # broker = h.helicsCreateBroker(core_type, "", initstring) isconnected = h.helicsBrokerIsConnected(broker) if isconnected == 1: pass return broker
def AddBroker(core_type="zmq", number_of_federates=1): initstring = "-f {} --name=mainbroker".format(number_of_federates) helicsversion = h.helicsGetVersion() print("HELICS version = {}".format(helicsversion)) # Create broker # broker = h.helicsCreateBroker(core_type, "", initstring) isconnected = h.helicsBrokerIsConnected(broker) if isconnected == 1: pass return broker
import time import helics as h from math import pi initstring = "2 --name=mainbroker" fedinitstring = "--broker=mainbroker --federates=1" deltat = 0.01 helicsversion = h.helicsGetVersion() print("PI SENDER: Helics version = {}".format(helicsversion)) # Create broker # print("Creating Broker") broker = h.helicsCreateBroker("zmq", "", initstring) print("Created Broker") print("Checking if Broker is connected") isconnected = h.helicsBrokerIsConnected(broker) print("Checked if Broker is connected") if isconnected == 1: print("Broker created and connected") # Create Federate Info object that describes the federate properties # fedinfo = h.helicsFederateInfoCreate() # Set Federate name # status = h.helicsFederateInfoSetFederateName(fedinfo, "TestA Federate") # Set core type from string #
def test_version(): import helics as h print(h.helicsGetVersion())
# -*- coding: utf-8 -*- import time import helics as h from math import pi initstring = "-f 2 --name=mainbroker" fedinitstring = "--broker=mainbroker --federates=1" deltat = 0.01 helicsversion = h.helicsGetVersion() print("PI SENDER: Helics version = {}".format(helicsversion)) # Create broker # print("Creating Broker") broker = h.helicsCreateBroker("zmq", "", initstring) print("Created Broker") print("Checking if Broker is connected") isconnected = h.helicsBrokerIsConnected(broker) print("Checked if Broker is connected") if isconnected == 1: print("Broker created and connected") # Create Federate Info object that describes the federate properties # fedinfo = h.helicsCreateFederateInfo() # Set Federate name # h.helicsFederateInfoSetCoreName(fedinfo, "TestA Federate")
def test_helicsGetVersion(): try: assert h.helicsGetVersion().startswith("2.6.1") except Exception: assert h.helicsGetVersion() == "3.0.0-alpha.2 (2020-11-08)"
def test_version(): print(h.helicsGetVersion())