Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

SOSflow : Scalable Observation System for Scientific Workflows

License

NotificationsYou must be signed in to change notification settings

cdwdirect/sos_flow

Repository files navigation

Alt

SOSflow provides a flexible, scalable, and programmable framework forobservation, introspection, feedback, and control of HPC applications.

📚 Documentation available in theSOSflow Wiki

The Scalable Observation System (SOS) performance model used bySOSflow allows a broad set of online and in situ capabilities includingremote method invocation, data analysis, and visualization. SOSflow cancouple together multiple sources of data, such as application componentsand operating environment measures, with multiple software libraries andperformance tools, efficiently creating holistic views of performance atruntime. SOSflow can extend the functionality of HPC applications byconnecting and coordinating accessory components, such as in situvisualization tools that are activated only when the primary applicationis not performing compute-intensive work.


📑 Example Code

The following C source provides a minimal example of usingthe SOSflow runtime to capture values:

#include<stdio.h>#include"sos.h"intmain(intargc,char**argv) {// Initialize the client, registering it with the SOS runtime.// In an MPI application, this is usually called immediately// after the MPI_Init(...) call.SOS_runtime*sos=NULL;SOS_init(&argc,&argv,&sos,SOS_ROLE_CLIENT,SOS_RECIEVES_NO_FEEDBACK,NULL);SOS_pub*pub=NULL;SOS_pub_create(sos,&pub,"demo",SOS_NATURE_CREATE_OUTPUT);intsomeInteger=256;SOS_pack(pub,"examplevalue",SOS_VAL_TYPE_INT,&someInteger);SOS_announce(pub);SOS_publish(pub);for (someInteger=1024;someInteger <=2048;someInteger++) {// All these pack'ed values will accumulate within the// client until the next SOS_publish(...) is called on the// publication handle.SOS_pack(pub,"examplevalue",SOS_VAL_TYPE_INT,&someInteger);    }SOS_publish(pub);// This is called at the end of an application, when it will no// longer be contributing to the SOS environment or responding// to feedback directives from SOS.// In an MPI application, the client usually will call this// immediately before the call to MPI_finalize().SOS_finalize(sos);return0;}

SOS example of "Hello, world!" using Python:

#!/usr/bin/env pythonimportosfromssosimportSSOSdefdemonstrateSOS():SOS=SSOS()sos_host="localhost"sos_port=os.environ.get("SOS_CMD_PORT")SOS.init()SOS.pack("somevar",SOS.STRING,"Hello, SOS.  I'm a python!")SOS.announce()SOS.publish()sql_string="SELECT * FROM tblVals LIMIT 10000;"results,col_names=SOS.query(sql_string,sos_host,sos_port)print"Results:"print"    Output rows....: "+str(len(results))print"    Output values..: "+str(results)print"    Column count...: "+str(len(col_names))print"    Column names...: "+str(col_names)print""SOS.finalize();if__name__=="__main__":demonstrateSOS()

[8]ページ先頭

©2009-2025 Movatter.jp