Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve DataSpaces usability and documentation #6

Merged
merged 12 commits into from
Jul 17, 2017
Merged

Conversation

philip-davis
Copy link
Contributor

Modified run-workflow.sh and workflow.swift to launch correctly-configured dataspaces_server based on command line arguments. This is done by adding a second argument to the run-workflow.sh script, which is used to

  1. do necessary precursor steps for the transports
  2. pass on to the workflow.swift script as the rmethod for stage_write

Also, paramaterized process counts in workflow.swift using a set of int values at the top of the script to make it easier to change process count and arrangement.

It is now possible to switch between DataSpaces and FlexPath by just changing the second argument to run-workflow.sh and appropriately modifying heat_transfer.xml.

These steps have been documented as well.

philip-davis and others added 8 commits July 17, 2017 09:41
FLEXPATH is the default if this option is omitted. This requires a different workflow to launch the server, and a utility script to check if the server is running. The user still needs to change heat_transfer.xml file.
Added instructions to edit xml file for DATASPACES
This should make documentation easier
@ianfoster
Copy link
Contributor

This is a new experience for me. I'd like to try this, but I think that I need it integrated it into savanna@develop so I can pull it. Is that feasible?

@j-woz
Copy link
Member

j-woz commented Jul 17, 2017

This looks fine to me. In the near future we will want to be able to use the same workflow.swift for both modes FLEXPATH and DATASPACES so that the science logic is reused. But for now this is great.

dataspaces.conf Outdated
@@ -2,10 +2,10 @@
## Config file for DataSpaces

ndim = 2
dims = 600,600
dims = 1600,1500
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@philip-davis - Could you elaborate a bit on what these mean and why you are modifying them? Thanks.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kshitij-v-mehta Thanks for catching these. They were artifacts from some earlier testing that I had left in. The dims values are the default global dimensions of the space. These must be larger than the dimensions being written by heat_transfer, but if they are too large the space will not be partitioned efficiently in the case of multiple servers. Optimal values powers of two (and the same for all dimensions), so I set them to 256,256 for the release.

@jychoi-hpc
Copy link
Collaborator

jychoi-hpc commented Jul 17, 2017

It looks like one step is missing. After running DataSpaces server and before running heat transfer app and stager, "conf" should be read and export two env variables: P2TNID and P2TPID.

In bash, we usually do as follows:
`
--Export the main server config to the environment
while read line; do
export set "${line}"
done < conf

--Then, run heat_transfer_adios2 and stage_write
`

@philip-davis Do we need this step? Am I right?
@jmjwozniak What would be the best way to read "conf" (DataSpaces server creates this file after running) and export env variables in Swift/T?

@philip-davis
Copy link
Contributor Author

Thanks for looking at this @jychoi-hpc. Sourcing the conf isn't necessary in recent versions of DataSpaces. The clients read from the conf file directly now.

@jychoi-hpc
Copy link
Collaborator

I see. In my test run, it hangs without proceeding. I will check my run again.

@jychoi-hpc
Copy link
Collaborator

My fault. I forgot to change xml file. It works now.

@jychoi-hpc jychoi-hpc merged commit 353f53a into master Jul 17, 2017
@philip-davis philip-davis deleted the dataspaces branch July 18, 2017 01:28
stc -p -u -I $LAUNCH -r $LAUNCH workflow.swift
turbine -n $PROCS $MACHINE workflow.tic
stc -p -u -I $LAUNCH -r $LAUNCH workflow.swift
turbine -n $PROCS $MACHINE workflow.tic -s=${STAGING}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know this is already merged, but what does -s do here? Tubine help page says we should be providing a settings.sh file here

int dsproc = 1;

availproc = turbine_workers();
rmethod = argv("s", "FLEXPATH");
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kshitij-v-mehta The -s flag is being passed as an argument to workflow.tic, rather than as a turbine option. That allows run-workflow.sh to pass on the transport type. I had thought I had picked something that didn't stomp on any turbine flags, but apparantly not 😬. Perhaps a different letter would be less confusing? -t for transport maybe?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, my stupidity, its obviously not a flag to turbine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants