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

Track #23

Merged
merged 43 commits into from
Jun 7, 2019
Merged

Track #23

merged 43 commits into from
Jun 7, 2019

Conversation

ovhpa
Copy link
Collaborator

@ovhpa ovhpa commented May 31, 2019

Dear Prof. Rohl,

I have finally completed GDIS's tracking feature.
This allow to launch USPEX or VASP calculations and track the progress on real time.
I have also modified the task system so that several calculations can be launched at the same time.
The tracking is a little different for VASP and USPEX though.

For ex. this is two USPEX calculations done simultaneously.
The main graph, ALL, shows all structure at one depending on the total energy per atom.
In red is the structure that belong to the BESTIndividuals file, ie. that are considered as best by USPEX.
In green are the structures generation from the generation currently under calculation.
track010
The second graph is the BEST structure (also from the BESTIndividuals file)
track011
I keep the BEST graph because it is sometimes tricky to select a structure from the main graphic (which can be very dense).
Then is the convex hull graph, which have several new features:
track012
As for the main graph, green squares are the structures generation from the generation currently under calculation.
But this time, the structures are plotted against a "formation energy".
Given compound AxBy, the energy is given as:

Ef = E[AxBy] - ( x/n E[An] + y/m E[Bm] )

Where An and Bm are the minimum energy structure containing only A and only B, respectively, from the USPEX calculation results.
It is also possible to use an external references, by using a chem.in file.
Its syntax is straightforward, for example, it can contain a line with:

1 2 -16.625834

in which case the reference for the species 1 (the first species in USPEX AtomType order) have 2 atoms and an total energy of -16.625834eV.
If the species 1 is A, this means the reference is [A2].
Each species is defined on a single line, and any missing species reference will be taken from USPEX calculation.
Additionally, in case no external reference is provided, the graph is first calculated using total energy per atom, until at least one of each single species have been calculated.

As previously, each structure can be select in the graph:
track110
And the corresponding structure can be use directly.
For example, I decided to use the structure for a VASP calculation:
track114
Note that the VASP tracking is different.
Each SCF energy is presented in a single graph, in which the diamond symbols correspond to the ionic steps, each link to the corresponding structure.

Each task is register to GDIS task manager, but I modified the code slightly so that each process has it own PID and can be killed independently:
track112
This was not possible before due to the synchronous spawning of task. This is a reason why I do them asynchronously (and use the waitpid system function).
If this is stable enough, I think it would be nice to change all the calculation related tasks to use this strategy.

Anyway, I think the code is quite stable now, almost ready for the next USPEX workshop - I will do a round of bug hunting before giving the green light ;)

For the future GDIS version, I am very sorry that I have encounter some delays m(_ _)m
I will explain the reasons in a separate mail, but it is still ongoing!

Sincerely,

…ollow the calculationS related to that file). also fix #10 ... again.
…frames for subsequent (not first) vasprun.xml files of a continous tracking.
…convex hull calculation + cosmetic changes (100000.000 energy value in Individuals file).
@ovhpa
Copy link
Collaborator Author

ovhpa commented May 31, 2019

I forgot to mention:
About VASP tracking, when the vasprun.xml file is overwritten by a new calculation, the tracking is not stopped, which allow to track several VASP calculations that are performed in the same directory.
For example in a USPEX calculation using VASP optimization, I have been able to follow all the VASP optimizations from a single GDIS tracking window over more than a week.

@arohl
Copy link
Owner

arohl commented Jun 1, 2019 via email

@ovhpa
Copy link
Collaborator Author

ovhpa commented Jun 3, 2019

I made all task asynchronous.
Additionally, I change the display of task status a little.
Now the "status file" is updated live, seeking through it for update - if any.
I fear some slow down if the status file become very large, but on the other hand it is quite enjoyable to read the status of calculation together with its output:
status_2
status

I'm still looking for bugs, and I met with some strange behaviour with CENTOS distribution: the output of the ps command to see the CPU and memory usage of a task is unusable.
However, I think we don't have to fix that on GDIS side.

@ovhpa
Copy link
Collaborator Author

ovhpa commented Jun 7, 2019

I think it is now quite stable:
multi_6

I had to (temporary) remove the update of BEST graph though.
It was not so stable so I replace with a function that wipe graph data and reconstruct BEST graph for each generation. It's a little slower but much more stable.

I think it is a ready enough version for merge, please tell me if you encounter some problems afterwards.

@ovhpa ovhpa merged commit 3a75b4c into arohl:master Jun 7, 2019
@ovhpa ovhpa deleted the track branch June 7, 2019 13:12
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.

2 participants