SlideShare a Scribd company logo
FireWorks workflow software 
MAVRL workshop | Nov 2014 
Anubhav Jain 
Energy & Environmental Technologies 
Berkeley Lab
¡ There was no real 
“system” for running jobs 
¡ Everything was very 
VASP specific 
¡ No error detection / 
failure recovery 
¡ When there was a 
mistake, it would take a 
week of manual labor to 
fix and rerun
¡ The first attempt was a horrible mash-up of 
things we had already built 
§ Complicated by having 2 people “in charge” 
¡ Sometimes it is better to start from a blank 
piece of paper with 1 leader
¡ #1 Google hit for “Python workflow software” 
§ now even beats Adobe Fireworks for #1 spot for 
“Fireworks workflow”! 
¡ Won NERSC award for innovative use of HPC 
¡ Used in many applications 
§ genomics to computer graphics 
§ this is not an “internal code” for running crystals 
¡ Doc page ~200 hits/week 
§ 1/10th of Materials Project
¡ What is FireWorks and why use it? 
¡ Practical: learn to use FireWorks
calc1 
restart 
test_2 
scp files/qsub 
wait for finish 
retry failures/copy 
files/qsub again
calc1 
restart 
try_2 
scp files/qsub 
wait for finish 
retry failures/copy 
files/qsub again
LAUNCHPAD 
ROCKET LAUNCHER / 
QUEUE LAUNCHER 
FW 1 
FW 2 
FW 3 FW 4 
Directory 1 Directory 2
? 
You 
can 
scale 
without 
human 
effort 
Easily 
customize 
what 
gets 
run 
where
¡ Easy-to-install 
§ FW currently at NERSC, SDSC, group clusters 
– Blue Gene planned 
¡ Work within the limits of queue policies 
¡ Pack jobs automatically
No job left behind!
¡ both job details (scripts+parameters) and 
launch details are automatically stored 
what 
machine 
what 
time 
what 
directory 
what 
was 
the 
output 
when 
was 
it 
queued 
when 
did 
it 
start 
running 
when 
was 
it 
completed 
LAUNCH
¡ Soft failures, hard failures, human errors 
¡ We’ve been through it many times now… 
¡ No longer a week’s effort 
§ “lpad detect_lostruns –rerun” OR 
§ “lpad rerun –s FIZZLED”
Xiaohui 
can 
be 
replaced 
by 
digital 
Xiaohui, 
programmed 
into 
FireWorks
¡ Submitting 
millions of jobs 
§ Easy to lose track 
of what was done 
before 
¡ Multiple users 
submitting jobs 
¡ Sub-workflow 
duplication 
A 
A 
Duplicate Job 
detection 
(if two workflows contain an 
identical step, 
ensure that the step is only 
run once and relevant 
information is still passed)
¡ Within workflow, or between workflows 
¡ Completely flexible
Now 
seems 
like 
a 
good 
time 
to 
bring 
up 
the 
last 
few 
lines 
of 
the 
OUTCAR 
of 
all 
failed 
jobs...
¡ Ridiculous amount of 
documentation and 
tutorials 
§ complete strangers are 
experts w/o my help 
§ but many grad students/ 
postdocs still complain w/o 
reading the docs 
¡ Built in tasks 
§ run BASH/Python scripts 
§ file transfer (incl. remote) 
§ write/copy/delete files 
¡ Paper in submission 
§ happy to share preprint
¡ What is FireWorks and why use it? 
¡ Practical: learn to use FireWorks
FW 1 Spec 
FireTask 1 
FireTask 2 
• Each FireWork is run in a separate 
directory, maybe on a different machine, 
within its own batch job (in queue mode) 
• The spec contains parameters needed to 
carry out FireTasks 
• FireTasks are run in succession in the 
same directory 
• A FireWork can modify the Spec of its 
children based on its output (pass 
information) through a FWAction 
• The FWAction can also modify the 
workflow 
FW 2 Spec 
FireTask 1 
FW 3 Spec 
FWAction 
FireTask 1 
FireTask 2 
FireTask 3 
FWAction
input_array: [1, 2, 3] 
1. Sum input array 
2. Write to file 
3. Pass result to next job 
input_array: [4, 5, 6] 
1. Sum input array 
2. Write to file 
3. Pass result to next job 
6 15 
input_data: [6, 15] 
1. Sum input data 
2. Write to file 
3. Pass result to next job 
------------------------------------- 
1. Copy result to home dir
class 
MyAdditionTask(FireTaskBase): 
_fw_name 
= 
"My 
Addition 
Task" 
def 
run_task(self, 
fw_spec): 
input_array: [1, 2, 3] 
1. Sum input array 
2. Write to file 
3. Pass result to next job 
input_array 
= 
fw_spec['input_array'] 
m_sum 
= 
sum(input_array) 
print("The 
sum 
of 
{} 
is: 
{}".format(input_array, 
m_sum)) 
with 
open('my_sum.txt', 
'a') 
as 
f: 
f.writelines(str(m_sum)+'n') 
# 
store 
the 
sum; 
push 
the 
sum 
to 
the 
input 
array 
of 
the 
next 
sum 
return 
FWAction(stored_data={'sum': 
m_sum}, 
mod_spec=[{'_push': 
{'input_array': 
m_sum}}]) 
See 
also: 
http://pythonhosted.org/FireWorks/guide_to_writing_firetasks.html
input_array: [1, 2, 3] 
1. Sum input array 
2. Write to file 
3. Pass result to next job 
input_array: [4, 5, 6] 
1. Sum input array 
2. Write to file 
3. Pass result to next job 
6 15! 
input_data: [6, 15] 
1. Sum input data 
2. Write to file 
3. Pass result to next job 
------------------------------------- 
1. Copy result to home dir 
# 
set 
up 
the 
LaunchPad 
and 
reset 
it 
launchpad 
= 
LaunchPad() 
launchpad.reset('', 
require_password=False) 
# 
create 
Workflow 
consisting 
of 
a 
AdditionTask 
FWs 
+ 
file 
transfer 
fw1 
= 
Firework(MyAdditionTask(), 
{"input_array": 
[1,2,3]}, 
name="pt 
1A") 
fw2 
= 
Firework(MyAdditionTask(), 
{"input_array": 
[4,5,6]}, 
name="pt 
1B") 
fw3 
= 
Firework([MyAdditionTask(), 
FileTransferTask({"mode": 
"cp", 
"files": 
["my_sum.txt"], 
"dest": 
"~"})], 
name="pt 
2") 
wf 
= 
Workflow([fw1, 
fw2, 
fw3], 
{fw1: 
fw3, 
fw2: 
fw3}, 
name="MAVRL 
test") 
launchpad.add_wf(wf) 
# 
launch 
the 
entire 
Workflow 
locally 
rapidfire(launchpad, 
FWorker())
¡ lpad get_wflows -d more 
¡ lpad get_fws -i 3 -d all 
¡ lpad webgui 
¡ Also rerun features 
See all reporting at official docs: 
http://pythonhosted.org/FireWorks
¡ There are a ton in the documentation and 
tutorials, just try them! 
§ http://pythonhosted.org/FireWorks 
¡ I want an example of running VASP! 
§ https://github.com/materialsvirtuallab/fireworks-vasp 
§ https://gist.github.com/computron/ 
▪ look for “fireworks-vasp_demo.py” 
§ Note: demo is only a single VASP run 
§ multiple VASP runs require passing directory names 
between jobs 
▪ currently you must do this manually 
▪ in future, perhaps build into FireWorks
¡ It is not an accident that we are able to support so 
many advanced features in such a short time 
§ many features not found anywhere else! 
¡ FireWorks is designed to: 
§ leverage modern tools 
§ be extensible at a fundamental level, not post-hoc 
feature additions
(this is YAML, a bit prettier for humans 
but less pretty for computers) 
fws: 
-­‐ 
fw_id: 
1 
spec: 
_tasks: 
-­‐ 
_fw_name: 
ScriptTask: 
script: 
echo 
'To 
be, 
or 
not 
to 
be,’ 
-­‐ 
fw_id: 
2 
spec: 
_tasks: 
-­‐ 
_fw_name: 
ScriptTask 
script: 
echo 
'that 
is 
the 
question:’ 
links: 
1: 
-­‐ 
2 
metadata: 
{} 
The 
same 
JSON 
document 
will 
produce 
the 
same 
result 
on 
any 
computer 
(with 
the 
same 
Python 
functions).
(this is YAML, a bit prettier for humans 
but less pretty for computers) 
fws: 
-­‐ 
fw_id: 
1 
spec: 
_tasks: 
-­‐ 
_fw_name: 
ScriptTask: 
script: 
echo 
'To 
be, 
or 
not 
to 
be,’ 
-­‐ 
fw_id: 
2 
spec: 
_tasks: 
-­‐ 
_fw_name: 
ScriptTask 
script: 
echo 
'that 
is 
the 
question:’ 
links: 
1: 
-­‐ 
2 
metadata: 
{} 
Just some of your search 
options: 
• simple matches 
• match in array 
• greater than/less than 
• regular expressions 
• match subdocument 
• Javascript function 
• MapReduce… 
All 
for 
free, 
and 
all 
on 
the 
native 
workflow 
format!
Use 
MongoDB’s 
dictionary 
update 
language 
to 
allow 
for 
JSON 
document 
updates 
Workflows 
can 
create 
new 
workflows 
or 
add 
to 
current 
workflow 
• a 
recursive 
workflow 
• calculation 
“detours” 
• branches
¡ Theme: Worker machine pulls a job & runs it 
¡ Variation 1: 
§ different workers can be configured to pull different 
types of jobs via config + MongoDB 
¡ Variation 2: 
§ worker machines sort the jobs by a priority key and 
pull matching jobs the highest priority
Queue launcher 
(running on Hopper head node) 
thruput job 
thruput job 
thruput job 
thruput job 
thruput job 
thruput job 
thruput job
Job wakes up 
when PBS runs it 
¡ more complex queuing schemes also possible 
§ it’s always the same pull and run, or a slight variation 
on it! 
Grabs the latest job 
description from an 
external DB (pull) 
Runs the job based 
on DB description
¡ Multiple processes pull and run jobs simultaneously 
§ It is all the same thing, just sliced* different ways! 
Query&Job&*>&&&job&A!!*>&update&DB& 
mpirun&*>&Node&1% 
Query&Job&*>&& &job&B!!*>&update&DB&& 
mpirun&*>&Node&2% 
Query&Job&*>&&&job&X&&*>&Update&DB& 
mpirun&*>&Node&n% 
Independent&Processes& 
1!large!job! 
mol&a% 
mol&b% 
mol&x% 
*get 
it? 
wink 
wink
because 
jobs 
are 
JSON, 
they 
are 
completely 
serializable!
¡ When a job runs, a separate thread periodically 
pings an “alive” signal to the database 
¡ If that alive signal doesn’t appear for some time, 
the job is dead 
§ this method is robust for all types of failures 
¡ The ping thread is reused to also track the output 
files and report the results to the database

More Related Content

What's hot

Jonathan Coveney: Why Pig?
Jonathan Coveney: Why Pig?Jonathan Coveney: Why Pig?
Jonathan Coveney: Why Pig?
mortardata
 
Introduction to Twitter Storm
Introduction to Twitter StormIntroduction to Twitter Storm
Introduction to Twitter Storm
Uwe Printz
 
Parallel Programming in Python: Speeding up your analysis
Parallel Programming in Python: Speeding up your analysisParallel Programming in Python: Speeding up your analysis
Parallel Programming in Python: Speeding up your analysis
Manojit Nandi
 
ICME Workshop Jul 2014 - The Materials Project
ICME Workshop Jul 2014 - The Materials ProjectICME Workshop Jul 2014 - The Materials Project
ICME Workshop Jul 2014 - The Materials Project
University of California, San Diego
 
Ipaw14 presentation Quan, Tanu, Ian
Ipaw14 presentation Quan, Tanu, IanIpaw14 presentation Quan, Tanu, Ian
Ipaw14 presentation Quan, Tanu, Ian
Boris Glavic
 
Scaling Apache Storm (Hadoop Summit 2015)
Scaling Apache Storm (Hadoop Summit 2015)Scaling Apache Storm (Hadoop Summit 2015)
Scaling Apache Storm (Hadoop Summit 2015)
Robert Evans
 
[262] netflix 빅데이터 플랫폼
[262] netflix 빅데이터 플랫폼[262] netflix 빅데이터 플랫폼
[262] netflix 빅데이터 플랫폼
NAVER D2
 
Developing Java Streaming Applications with Apache Storm
Developing Java Streaming Applications with Apache StormDeveloping Java Streaming Applications with Apache Storm
Developing Java Streaming Applications with Apache Storm
Lester Martin
 
Storm Real Time Computation
Storm Real Time ComputationStorm Real Time Computation
Storm Real Time Computation
Sonal Raj
 
Automating Real-time Seismic Analysis Through Streaming and High Throughput W...
Automating Real-time Seismic Analysis Through Streaming and High Throughput W...Automating Real-time Seismic Analysis Through Streaming and High Throughput W...
Automating Real-time Seismic Analysis Through Streaming and High Throughput W...
Rafael Ferreira da Silva
 
Apache Storm 0.9 basic training - Verisign
Apache Storm 0.9 basic training - VerisignApache Storm 0.9 basic training - Verisign
Apache Storm 0.9 basic training - Verisign
Michael Noll
 
Storm - As deep into real-time data processing as you can get in 30 minutes.
Storm - As deep into real-time data processing as you can get in 30 minutes.Storm - As deep into real-time data processing as you can get in 30 minutes.
Storm - As deep into real-time data processing as you can get in 30 minutes.
Dan Lynn
 
Realtime Analytics with Storm and Hadoop
Realtime Analytics with Storm and HadoopRealtime Analytics with Storm and Hadoop
Realtime Analytics with Storm and HadoopDataWorks Summit
 
Introduction to Storm
Introduction to Storm Introduction to Storm
Introduction to Storm Chandler Huang
 
Hadoop Summit Europe 2014: Apache Storm Architecture
Hadoop Summit Europe 2014: Apache Storm ArchitectureHadoop Summit Europe 2014: Apache Storm Architecture
Hadoop Summit Europe 2014: Apache Storm Architecture
P. Taylor Goetz
 
Effective testing for spark programs Strata NY 2015
Effective testing for spark programs   Strata NY 2015Effective testing for spark programs   Strata NY 2015
Effective testing for spark programs Strata NY 2015
Holden Karau
 
Storm Anatomy
Storm AnatomyStorm Anatomy
Storm Anatomy
Eiichiro Uchiumi
 
Real time and reliable processing with Apache Storm
Real time and reliable processing with Apache StormReal time and reliable processing with Apache Storm
Real time and reliable processing with Apache Storm
Andrea Iacono
 
Real-time Big Data Processing with Storm
Real-time Big Data Processing with StormReal-time Big Data Processing with Storm
Real-time Big Data Processing with Storm
viirya
 
Storm: distributed and fault-tolerant realtime computation
Storm: distributed and fault-tolerant realtime computationStorm: distributed and fault-tolerant realtime computation
Storm: distributed and fault-tolerant realtime computationnathanmarz
 

What's hot (20)

Jonathan Coveney: Why Pig?
Jonathan Coveney: Why Pig?Jonathan Coveney: Why Pig?
Jonathan Coveney: Why Pig?
 
Introduction to Twitter Storm
Introduction to Twitter StormIntroduction to Twitter Storm
Introduction to Twitter Storm
 
Parallel Programming in Python: Speeding up your analysis
Parallel Programming in Python: Speeding up your analysisParallel Programming in Python: Speeding up your analysis
Parallel Programming in Python: Speeding up your analysis
 
ICME Workshop Jul 2014 - The Materials Project
ICME Workshop Jul 2014 - The Materials ProjectICME Workshop Jul 2014 - The Materials Project
ICME Workshop Jul 2014 - The Materials Project
 
Ipaw14 presentation Quan, Tanu, Ian
Ipaw14 presentation Quan, Tanu, IanIpaw14 presentation Quan, Tanu, Ian
Ipaw14 presentation Quan, Tanu, Ian
 
Scaling Apache Storm (Hadoop Summit 2015)
Scaling Apache Storm (Hadoop Summit 2015)Scaling Apache Storm (Hadoop Summit 2015)
Scaling Apache Storm (Hadoop Summit 2015)
 
[262] netflix 빅데이터 플랫폼
[262] netflix 빅데이터 플랫폼[262] netflix 빅데이터 플랫폼
[262] netflix 빅데이터 플랫폼
 
Developing Java Streaming Applications with Apache Storm
Developing Java Streaming Applications with Apache StormDeveloping Java Streaming Applications with Apache Storm
Developing Java Streaming Applications with Apache Storm
 
Storm Real Time Computation
Storm Real Time ComputationStorm Real Time Computation
Storm Real Time Computation
 
Automating Real-time Seismic Analysis Through Streaming and High Throughput W...
Automating Real-time Seismic Analysis Through Streaming and High Throughput W...Automating Real-time Seismic Analysis Through Streaming and High Throughput W...
Automating Real-time Seismic Analysis Through Streaming and High Throughput W...
 
Apache Storm 0.9 basic training - Verisign
Apache Storm 0.9 basic training - VerisignApache Storm 0.9 basic training - Verisign
Apache Storm 0.9 basic training - Verisign
 
Storm - As deep into real-time data processing as you can get in 30 minutes.
Storm - As deep into real-time data processing as you can get in 30 minutes.Storm - As deep into real-time data processing as you can get in 30 minutes.
Storm - As deep into real-time data processing as you can get in 30 minutes.
 
Realtime Analytics with Storm and Hadoop
Realtime Analytics with Storm and HadoopRealtime Analytics with Storm and Hadoop
Realtime Analytics with Storm and Hadoop
 
Introduction to Storm
Introduction to Storm Introduction to Storm
Introduction to Storm
 
Hadoop Summit Europe 2014: Apache Storm Architecture
Hadoop Summit Europe 2014: Apache Storm ArchitectureHadoop Summit Europe 2014: Apache Storm Architecture
Hadoop Summit Europe 2014: Apache Storm Architecture
 
Effective testing for spark programs Strata NY 2015
Effective testing for spark programs   Strata NY 2015Effective testing for spark programs   Strata NY 2015
Effective testing for spark programs Strata NY 2015
 
Storm Anatomy
Storm AnatomyStorm Anatomy
Storm Anatomy
 
Real time and reliable processing with Apache Storm
Real time and reliable processing with Apache StormReal time and reliable processing with Apache Storm
Real time and reliable processing with Apache Storm
 
Real-time Big Data Processing with Storm
Real-time Big Data Processing with StormReal-time Big Data Processing with Storm
Real-time Big Data Processing with Storm
 
Storm: distributed and fault-tolerant realtime computation
Storm: distributed and fault-tolerant realtime computationStorm: distributed and fault-tolerant realtime computation
Storm: distributed and fault-tolerant realtime computation
 

Viewers also liked

Creating It from Bit - Designing Materials by Integrating Quantum Mechanics, ...
Creating It from Bit - Designing Materials by Integrating Quantum Mechanics, ...Creating It from Bit - Designing Materials by Integrating Quantum Mechanics, ...
Creating It from Bit - Designing Materials by Integrating Quantum Mechanics, ...
University of California, San Diego
 
Software tools to facilitate materials science research
Software tools to facilitate materials science researchSoftware tools to facilitate materials science research
Software tools to facilitate materials science research
Anubhav Jain
 
Combining density functional theory calculations, supercomputing, and data-dr...
Combining density functional theory calculations, supercomputing, and data-dr...Combining density functional theory calculations, supercomputing, and data-dr...
Combining density functional theory calculations, supercomputing, and data-dr...
Anubhav Jain
 
The Materials Project and computational materials discovery
The Materials Project and computational materials discoveryThe Materials Project and computational materials discovery
The Materials Project and computational materials discovery
Anubhav Jain
 
Combining High-Throughput Computing and Statistical Learning to Develop and U...
Combining High-Throughput Computing and Statistical Learning to Develop and U...Combining High-Throughput Computing and Statistical Learning to Develop and U...
Combining High-Throughput Computing and Statistical Learning to Develop and U...
Anubhav Jain
 
Educational Software Categories
Educational Software CategoriesEducational Software Categories
Educational Software Categories
Jeremy Brueck
 
ALPSチュートリアル(4) Python入門
ALPSチュートリアル(4) Python入門ALPSチュートリアル(4) Python入門
ALPSチュートリアル(4) Python入門
Computational Materials Science Initiative
 
Academic Software
Academic SoftwareAcademic Software
Academic Softwareandy85730
 
UCSD NANO106 - 02 - 3D Bravis Lattices and Lattice Computations
UCSD NANO106 - 02 - 3D Bravis Lattices and Lattice ComputationsUCSD NANO106 - 02 - 3D Bravis Lattices and Lattice Computations
UCSD NANO106 - 02 - 3D Bravis Lattices and Lattice Computations
University of California, San Diego
 
Targeted Band Structure Design and Thermoelectric Materials Discovery Using H...
Targeted Band Structure Design and Thermoelectric Materials Discovery Using H...Targeted Band Structure Design and Thermoelectric Materials Discovery Using H...
Targeted Band Structure Design and Thermoelectric Materials Discovery Using H...
Anubhav Jain
 
Combining density functional theory calculations, supercomputing, and data-dr...
Combining density functional theory calculations, supercomputing, and data-dr...Combining density functional theory calculations, supercomputing, and data-dr...
Combining density functional theory calculations, supercomputing, and data-dr...
Anubhav Jain
 
UCSD NANO106 - 07 - Material properties and tensors
UCSD NANO106 - 07 - Material properties and tensorsUCSD NANO106 - 07 - Material properties and tensors
UCSD NANO106 - 07 - Material properties and tensors
University of California, San Diego
 
UCSD NANO106 - 06 - Plane and Space Groups
UCSD NANO106 - 06 - Plane and Space GroupsUCSD NANO106 - 06 - Plane and Space Groups
UCSD NANO106 - 06 - Plane and Space Groups
University of California, San Diego
 
Combining density functional theory calculations, supercomputing, and data-dr...
Combining density functional theory calculations, supercomputing, and data-dr...Combining density functional theory calculations, supercomputing, and data-dr...
Combining density functional theory calculations, supercomputing, and data-dr...
Anubhav Jain
 
UCSD NANO106 - 01 - Introduction to Crystallography
UCSD NANO106 - 01 - Introduction to CrystallographyUCSD NANO106 - 01 - Introduction to Crystallography
UCSD NANO106 - 01 - Introduction to Crystallography
University of California, San Diego
 
UCSD NANO106 - 03 - Lattice Directions and Planes, Reciprocal Lattice and Coo...
UCSD NANO106 - 03 - Lattice Directions and Planes, Reciprocal Lattice and Coo...UCSD NANO106 - 03 - Lattice Directions and Planes, Reciprocal Lattice and Coo...
UCSD NANO106 - 03 - Lattice Directions and Planes, Reciprocal Lattice and Coo...
University of California, San Diego
 
UCSD NANO106 - 13 - Other Diffraction Techniques and Common Crystal Structures
UCSD NANO106 - 13 - Other Diffraction Techniques and Common Crystal StructuresUCSD NANO106 - 13 - Other Diffraction Techniques and Common Crystal Structures
UCSD NANO106 - 13 - Other Diffraction Techniques and Common Crystal Structures
University of California, San Diego
 
UCSD NANO106 - 05 - Group Symmetry and the 32 Point Groups
UCSD NANO106 - 05 - Group Symmetry and the 32 Point GroupsUCSD NANO106 - 05 - Group Symmetry and the 32 Point Groups
UCSD NANO106 - 05 - Group Symmetry and the 32 Point Groups
University of California, San Diego
 
UCSD NANO106 - 10 - Bonding in Materials
UCSD NANO106 - 10 - Bonding in MaterialsUCSD NANO106 - 10 - Bonding in Materials
UCSD NANO106 - 10 - Bonding in Materials
University of California, San Diego
 
UCSD NANO106 - 04 - Symmetry in Crystallography
UCSD NANO106 - 04 - Symmetry in CrystallographyUCSD NANO106 - 04 - Symmetry in Crystallography
UCSD NANO106 - 04 - Symmetry in Crystallography
University of California, San Diego
 

Viewers also liked (20)

Creating It from Bit - Designing Materials by Integrating Quantum Mechanics, ...
Creating It from Bit - Designing Materials by Integrating Quantum Mechanics, ...Creating It from Bit - Designing Materials by Integrating Quantum Mechanics, ...
Creating It from Bit - Designing Materials by Integrating Quantum Mechanics, ...
 
Software tools to facilitate materials science research
Software tools to facilitate materials science researchSoftware tools to facilitate materials science research
Software tools to facilitate materials science research
 
Combining density functional theory calculations, supercomputing, and data-dr...
Combining density functional theory calculations, supercomputing, and data-dr...Combining density functional theory calculations, supercomputing, and data-dr...
Combining density functional theory calculations, supercomputing, and data-dr...
 
The Materials Project and computational materials discovery
The Materials Project and computational materials discoveryThe Materials Project and computational materials discovery
The Materials Project and computational materials discovery
 
Combining High-Throughput Computing and Statistical Learning to Develop and U...
Combining High-Throughput Computing and Statistical Learning to Develop and U...Combining High-Throughput Computing and Statistical Learning to Develop and U...
Combining High-Throughput Computing and Statistical Learning to Develop and U...
 
Educational Software Categories
Educational Software CategoriesEducational Software Categories
Educational Software Categories
 
ALPSチュートリアル(4) Python入門
ALPSチュートリアル(4) Python入門ALPSチュートリアル(4) Python入門
ALPSチュートリアル(4) Python入門
 
Academic Software
Academic SoftwareAcademic Software
Academic Software
 
UCSD NANO106 - 02 - 3D Bravis Lattices and Lattice Computations
UCSD NANO106 - 02 - 3D Bravis Lattices and Lattice ComputationsUCSD NANO106 - 02 - 3D Bravis Lattices and Lattice Computations
UCSD NANO106 - 02 - 3D Bravis Lattices and Lattice Computations
 
Targeted Band Structure Design and Thermoelectric Materials Discovery Using H...
Targeted Band Structure Design and Thermoelectric Materials Discovery Using H...Targeted Band Structure Design and Thermoelectric Materials Discovery Using H...
Targeted Band Structure Design and Thermoelectric Materials Discovery Using H...
 
Combining density functional theory calculations, supercomputing, and data-dr...
Combining density functional theory calculations, supercomputing, and data-dr...Combining density functional theory calculations, supercomputing, and data-dr...
Combining density functional theory calculations, supercomputing, and data-dr...
 
UCSD NANO106 - 07 - Material properties and tensors
UCSD NANO106 - 07 - Material properties and tensorsUCSD NANO106 - 07 - Material properties and tensors
UCSD NANO106 - 07 - Material properties and tensors
 
UCSD NANO106 - 06 - Plane and Space Groups
UCSD NANO106 - 06 - Plane and Space GroupsUCSD NANO106 - 06 - Plane and Space Groups
UCSD NANO106 - 06 - Plane and Space Groups
 
Combining density functional theory calculations, supercomputing, and data-dr...
Combining density functional theory calculations, supercomputing, and data-dr...Combining density functional theory calculations, supercomputing, and data-dr...
Combining density functional theory calculations, supercomputing, and data-dr...
 
UCSD NANO106 - 01 - Introduction to Crystallography
UCSD NANO106 - 01 - Introduction to CrystallographyUCSD NANO106 - 01 - Introduction to Crystallography
UCSD NANO106 - 01 - Introduction to Crystallography
 
UCSD NANO106 - 03 - Lattice Directions and Planes, Reciprocal Lattice and Coo...
UCSD NANO106 - 03 - Lattice Directions and Planes, Reciprocal Lattice and Coo...UCSD NANO106 - 03 - Lattice Directions and Planes, Reciprocal Lattice and Coo...
UCSD NANO106 - 03 - Lattice Directions and Planes, Reciprocal Lattice and Coo...
 
UCSD NANO106 - 13 - Other Diffraction Techniques and Common Crystal Structures
UCSD NANO106 - 13 - Other Diffraction Techniques and Common Crystal StructuresUCSD NANO106 - 13 - Other Diffraction Techniques and Common Crystal Structures
UCSD NANO106 - 13 - Other Diffraction Techniques and Common Crystal Structures
 
UCSD NANO106 - 05 - Group Symmetry and the 32 Point Groups
UCSD NANO106 - 05 - Group Symmetry and the 32 Point GroupsUCSD NANO106 - 05 - Group Symmetry and the 32 Point Groups
UCSD NANO106 - 05 - Group Symmetry and the 32 Point Groups
 
UCSD NANO106 - 10 - Bonding in Materials
UCSD NANO106 - 10 - Bonding in MaterialsUCSD NANO106 - 10 - Bonding in Materials
UCSD NANO106 - 10 - Bonding in Materials
 
UCSD NANO106 - 04 - Symmetry in Crystallography
UCSD NANO106 - 04 - Symmetry in CrystallographyUCSD NANO106 - 04 - Symmetry in Crystallography
UCSD NANO106 - 04 - Symmetry in Crystallography
 

Similar to FireWorks workflow software

Work Queues
Work QueuesWork Queues
Work Queuesciconf
 
Buildingsocialanalyticstoolwithmongodb
BuildingsocialanalyticstoolwithmongodbBuildingsocialanalyticstoolwithmongodb
BuildingsocialanalyticstoolwithmongodbMongoDB APAC
 
Gearman and CodeIgniter
Gearman and CodeIgniterGearman and CodeIgniter
Gearman and CodeIgniter
Erik Giberti
 
Continuous Delivery: The Dirty Details
Continuous Delivery: The Dirty DetailsContinuous Delivery: The Dirty Details
Continuous Delivery: The Dirty Details
Mike Brittain
 
PuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into OperationsPuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into Operationsgrim_radical
 
Linux Server Deep Dives (DrupalCon Amsterdam)
Linux Server Deep Dives (DrupalCon Amsterdam)Linux Server Deep Dives (DrupalCon Amsterdam)
Linux Server Deep Dives (DrupalCon Amsterdam)
Amin Astaneh
 
How Many Slaves (Ukoug)
How Many Slaves (Ukoug)How Many Slaves (Ukoug)
How Many Slaves (Ukoug)
Doug Burns
 
How to deploy spark instance using ansible 2.0 in fiware lab v2
How to deploy spark instance using ansible 2.0 in fiware lab v2How to deploy spark instance using ansible 2.0 in fiware lab v2
How to deploy spark instance using ansible 2.0 in fiware lab v2
Fernando Lopez Aguilar
 
How to Deploy Spark Instance Using Ansible 2.0 in FIWARE Lab
How to Deploy Spark Instance Using Ansible 2.0 in FIWARE LabHow to Deploy Spark Instance Using Ansible 2.0 in FIWARE Lab
How to Deploy Spark Instance Using Ansible 2.0 in FIWARE Lab
FIWARE
 
Apache Cassandra and Apche Spark
Apache Cassandra and Apche SparkApache Cassandra and Apche Spark
Apache Cassandra and Apche Spark
Alex Thompson
 
Apache Submarine: Unified Machine Learning Platform
Apache Submarine: Unified Machine Learning PlatformApache Submarine: Unified Machine Learning Platform
Apache Submarine: Unified Machine Learning Platform
Wangda Tan
 
MobileConf 2021 Slides: Let's build macOS CLI Utilities using Swift
MobileConf 2021 Slides:  Let's build macOS CLI Utilities using SwiftMobileConf 2021 Slides:  Let's build macOS CLI Utilities using Swift
MobileConf 2021 Slides: Let's build macOS CLI Utilities using Swift
Diego Freniche Brito
 
#OktoCampus - Workshop : An introduction to Ansible
#OktoCampus - Workshop : An introduction to Ansible#OktoCampus - Workshop : An introduction to Ansible
#OktoCampus - Workshop : An introduction to Ansible
Cédric Delgehier
 
PuppetConf 2016: Multi-Tenant Puppet at Scale – John Jawed, eBay, Inc.
PuppetConf 2016: Multi-Tenant Puppet at Scale – John Jawed, eBay, Inc.PuppetConf 2016: Multi-Tenant Puppet at Scale – John Jawed, eBay, Inc.
PuppetConf 2016: Multi-Tenant Puppet at Scale – John Jawed, eBay, Inc.
Puppet
 
Capistrano, Puppet, and Chef
Capistrano, Puppet, and ChefCapistrano, Puppet, and Chef
Capistrano, Puppet, and Chef
David Benjamin
 
Performance Profiling in Rust
Performance Profiling in RustPerformance Profiling in Rust
Performance Profiling in Rust
InfluxData
 
(1) cpp introducing the_cpp_programming_language
(1) cpp introducing the_cpp_programming_language(1) cpp introducing the_cpp_programming_language
(1) cpp introducing the_cpp_programming_language
Nico Ludwig
 
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
Alexander Dean
 
Benchmarking at Parse
Benchmarking at ParseBenchmarking at Parse
Benchmarking at Parse
Travis Redman
 
Advanced Benchmarking at Parse
Advanced Benchmarking at ParseAdvanced Benchmarking at Parse
Advanced Benchmarking at Parse
MongoDB
 

Similar to FireWorks workflow software (20)

Work Queues
Work QueuesWork Queues
Work Queues
 
Buildingsocialanalyticstoolwithmongodb
BuildingsocialanalyticstoolwithmongodbBuildingsocialanalyticstoolwithmongodb
Buildingsocialanalyticstoolwithmongodb
 
Gearman and CodeIgniter
Gearman and CodeIgniterGearman and CodeIgniter
Gearman and CodeIgniter
 
Continuous Delivery: The Dirty Details
Continuous Delivery: The Dirty DetailsContinuous Delivery: The Dirty Details
Continuous Delivery: The Dirty Details
 
PuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into OperationsPuppetDB: Sneaking Clojure into Operations
PuppetDB: Sneaking Clojure into Operations
 
Linux Server Deep Dives (DrupalCon Amsterdam)
Linux Server Deep Dives (DrupalCon Amsterdam)Linux Server Deep Dives (DrupalCon Amsterdam)
Linux Server Deep Dives (DrupalCon Amsterdam)
 
How Many Slaves (Ukoug)
How Many Slaves (Ukoug)How Many Slaves (Ukoug)
How Many Slaves (Ukoug)
 
How to deploy spark instance using ansible 2.0 in fiware lab v2
How to deploy spark instance using ansible 2.0 in fiware lab v2How to deploy spark instance using ansible 2.0 in fiware lab v2
How to deploy spark instance using ansible 2.0 in fiware lab v2
 
How to Deploy Spark Instance Using Ansible 2.0 in FIWARE Lab
How to Deploy Spark Instance Using Ansible 2.0 in FIWARE LabHow to Deploy Spark Instance Using Ansible 2.0 in FIWARE Lab
How to Deploy Spark Instance Using Ansible 2.0 in FIWARE Lab
 
Apache Cassandra and Apche Spark
Apache Cassandra and Apche SparkApache Cassandra and Apche Spark
Apache Cassandra and Apche Spark
 
Apache Submarine: Unified Machine Learning Platform
Apache Submarine: Unified Machine Learning PlatformApache Submarine: Unified Machine Learning Platform
Apache Submarine: Unified Machine Learning Platform
 
MobileConf 2021 Slides: Let's build macOS CLI Utilities using Swift
MobileConf 2021 Slides:  Let's build macOS CLI Utilities using SwiftMobileConf 2021 Slides:  Let's build macOS CLI Utilities using Swift
MobileConf 2021 Slides: Let's build macOS CLI Utilities using Swift
 
#OktoCampus - Workshop : An introduction to Ansible
#OktoCampus - Workshop : An introduction to Ansible#OktoCampus - Workshop : An introduction to Ansible
#OktoCampus - Workshop : An introduction to Ansible
 
PuppetConf 2016: Multi-Tenant Puppet at Scale – John Jawed, eBay, Inc.
PuppetConf 2016: Multi-Tenant Puppet at Scale – John Jawed, eBay, Inc.PuppetConf 2016: Multi-Tenant Puppet at Scale – John Jawed, eBay, Inc.
PuppetConf 2016: Multi-Tenant Puppet at Scale – John Jawed, eBay, Inc.
 
Capistrano, Puppet, and Chef
Capistrano, Puppet, and ChefCapistrano, Puppet, and Chef
Capistrano, Puppet, and Chef
 
Performance Profiling in Rust
Performance Profiling in RustPerformance Profiling in Rust
Performance Profiling in Rust
 
(1) cpp introducing the_cpp_programming_language
(1) cpp introducing the_cpp_programming_language(1) cpp introducing the_cpp_programming_language
(1) cpp introducing the_cpp_programming_language
 
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
From Zero to Hadoop: a tutorial for getting started writing Hadoop jobs on Am...
 
Benchmarking at Parse
Benchmarking at ParseBenchmarking at Parse
Benchmarking at Parse
 
Advanced Benchmarking at Parse
Advanced Benchmarking at ParseAdvanced Benchmarking at Parse
Advanced Benchmarking at Parse
 

More from Anubhav Jain

Discovering advanced materials for energy applications: theory, high-throughp...
Discovering advanced materials for energy applications: theory, high-throughp...Discovering advanced materials for energy applications: theory, high-throughp...
Discovering advanced materials for energy applications: theory, high-throughp...
Anubhav Jain
 
Applications of Large Language Models in Materials Discovery and Design
Applications of Large Language Models in Materials Discovery and DesignApplications of Large Language Models in Materials Discovery and Design
Applications of Large Language Models in Materials Discovery and Design
Anubhav Jain
 
An AI-driven closed-loop facility for materials synthesis
An AI-driven closed-loop facility for materials synthesisAn AI-driven closed-loop facility for materials synthesis
An AI-driven closed-loop facility for materials synthesis
Anubhav Jain
 
Best practices for DuraMat software dissemination
Best practices for DuraMat software disseminationBest practices for DuraMat software dissemination
Best practices for DuraMat software dissemination
Anubhav Jain
 
Best practices for DuraMat software dissemination
Best practices for DuraMat software disseminationBest practices for DuraMat software dissemination
Best practices for DuraMat software dissemination
Anubhav Jain
 
Available methods for predicting materials synthesizability using computation...
Available methods for predicting materials synthesizability using computation...Available methods for predicting materials synthesizability using computation...
Available methods for predicting materials synthesizability using computation...
Anubhav Jain
 
Efficient methods for accurately calculating thermoelectric properties – elec...
Efficient methods for accurately calculating thermoelectric properties – elec...Efficient methods for accurately calculating thermoelectric properties – elec...
Efficient methods for accurately calculating thermoelectric properties – elec...
Anubhav Jain
 
Natural Language Processing for Data Extraction and Synthesizability Predicti...
Natural Language Processing for Data Extraction and Synthesizability Predicti...Natural Language Processing for Data Extraction and Synthesizability Predicti...
Natural Language Processing for Data Extraction and Synthesizability Predicti...
Anubhav Jain
 
Machine Learning for Catalyst Design
Machine Learning for Catalyst DesignMachine Learning for Catalyst Design
Machine Learning for Catalyst Design
Anubhav Jain
 
Discovering new functional materials for clean energy and beyond using high-t...
Discovering new functional materials for clean energy and beyond using high-t...Discovering new functional materials for clean energy and beyond using high-t...
Discovering new functional materials for clean energy and beyond using high-t...
Anubhav Jain
 
Natural language processing for extracting synthesis recipes and applications...
Natural language processing for extracting synthesis recipes and applications...Natural language processing for extracting synthesis recipes and applications...
Natural language processing for extracting synthesis recipes and applications...
Anubhav Jain
 
Accelerating New Materials Design with Supercomputing and Machine Learning
Accelerating New Materials Design with Supercomputing and Machine LearningAccelerating New Materials Design with Supercomputing and Machine Learning
Accelerating New Materials Design with Supercomputing and Machine Learning
Anubhav Jain
 
DuraMat CO1 Central Data Resource: How it started, how it’s going …
DuraMat CO1 Central Data Resource: How it started, how it’s going …DuraMat CO1 Central Data Resource: How it started, how it’s going …
DuraMat CO1 Central Data Resource: How it started, how it’s going …
Anubhav Jain
 
The Materials Project
The Materials ProjectThe Materials Project
The Materials Project
Anubhav Jain
 
Evaluating Chemical Composition and Crystal Structure Representations using t...
Evaluating Chemical Composition and Crystal Structure Representations using t...Evaluating Chemical Composition and Crystal Structure Representations using t...
Evaluating Chemical Composition and Crystal Structure Representations using t...
Anubhav Jain
 
Perspectives on chemical composition and crystal structure representations fr...
Perspectives on chemical composition and crystal structure representations fr...Perspectives on chemical composition and crystal structure representations fr...
Perspectives on chemical composition and crystal structure representations fr...
Anubhav Jain
 
Discovering and Exploring New Materials through the Materials Project
Discovering and Exploring New Materials through the Materials ProjectDiscovering and Exploring New Materials through the Materials Project
Discovering and Exploring New Materials through the Materials Project
Anubhav Jain
 
The Materials Project: Applications to energy storage and functional materia...
The Materials Project: Applications to energy storage and functional materia...The Materials Project: Applications to energy storage and functional materia...
The Materials Project: Applications to energy storage and functional materia...
Anubhav Jain
 
The Materials Project: A Community Data Resource for Accelerating New Materia...
The Materials Project: A Community Data Resource for Accelerating New Materia...The Materials Project: A Community Data Resource for Accelerating New Materia...
The Materials Project: A Community Data Resource for Accelerating New Materia...
Anubhav Jain
 
Machine Learning Platform for Catalyst Design
Machine Learning Platform for Catalyst DesignMachine Learning Platform for Catalyst Design
Machine Learning Platform for Catalyst Design
Anubhav Jain
 

More from Anubhav Jain (20)

Discovering advanced materials for energy applications: theory, high-throughp...
Discovering advanced materials for energy applications: theory, high-throughp...Discovering advanced materials for energy applications: theory, high-throughp...
Discovering advanced materials for energy applications: theory, high-throughp...
 
Applications of Large Language Models in Materials Discovery and Design
Applications of Large Language Models in Materials Discovery and DesignApplications of Large Language Models in Materials Discovery and Design
Applications of Large Language Models in Materials Discovery and Design
 
An AI-driven closed-loop facility for materials synthesis
An AI-driven closed-loop facility for materials synthesisAn AI-driven closed-loop facility for materials synthesis
An AI-driven closed-loop facility for materials synthesis
 
Best practices for DuraMat software dissemination
Best practices for DuraMat software disseminationBest practices for DuraMat software dissemination
Best practices for DuraMat software dissemination
 
Best practices for DuraMat software dissemination
Best practices for DuraMat software disseminationBest practices for DuraMat software dissemination
Best practices for DuraMat software dissemination
 
Available methods for predicting materials synthesizability using computation...
Available methods for predicting materials synthesizability using computation...Available methods for predicting materials synthesizability using computation...
Available methods for predicting materials synthesizability using computation...
 
Efficient methods for accurately calculating thermoelectric properties – elec...
Efficient methods for accurately calculating thermoelectric properties – elec...Efficient methods for accurately calculating thermoelectric properties – elec...
Efficient methods for accurately calculating thermoelectric properties – elec...
 
Natural Language Processing for Data Extraction and Synthesizability Predicti...
Natural Language Processing for Data Extraction and Synthesizability Predicti...Natural Language Processing for Data Extraction and Synthesizability Predicti...
Natural Language Processing for Data Extraction and Synthesizability Predicti...
 
Machine Learning for Catalyst Design
Machine Learning for Catalyst DesignMachine Learning for Catalyst Design
Machine Learning for Catalyst Design
 
Discovering new functional materials for clean energy and beyond using high-t...
Discovering new functional materials for clean energy and beyond using high-t...Discovering new functional materials for clean energy and beyond using high-t...
Discovering new functional materials for clean energy and beyond using high-t...
 
Natural language processing for extracting synthesis recipes and applications...
Natural language processing for extracting synthesis recipes and applications...Natural language processing for extracting synthesis recipes and applications...
Natural language processing for extracting synthesis recipes and applications...
 
Accelerating New Materials Design with Supercomputing and Machine Learning
Accelerating New Materials Design with Supercomputing and Machine LearningAccelerating New Materials Design with Supercomputing and Machine Learning
Accelerating New Materials Design with Supercomputing and Machine Learning
 
DuraMat CO1 Central Data Resource: How it started, how it’s going …
DuraMat CO1 Central Data Resource: How it started, how it’s going …DuraMat CO1 Central Data Resource: How it started, how it’s going …
DuraMat CO1 Central Data Resource: How it started, how it’s going …
 
The Materials Project
The Materials ProjectThe Materials Project
The Materials Project
 
Evaluating Chemical Composition and Crystal Structure Representations using t...
Evaluating Chemical Composition and Crystal Structure Representations using t...Evaluating Chemical Composition and Crystal Structure Representations using t...
Evaluating Chemical Composition and Crystal Structure Representations using t...
 
Perspectives on chemical composition and crystal structure representations fr...
Perspectives on chemical composition and crystal structure representations fr...Perspectives on chemical composition and crystal structure representations fr...
Perspectives on chemical composition and crystal structure representations fr...
 
Discovering and Exploring New Materials through the Materials Project
Discovering and Exploring New Materials through the Materials ProjectDiscovering and Exploring New Materials through the Materials Project
Discovering and Exploring New Materials through the Materials Project
 
The Materials Project: Applications to energy storage and functional materia...
The Materials Project: Applications to energy storage and functional materia...The Materials Project: Applications to energy storage and functional materia...
The Materials Project: Applications to energy storage and functional materia...
 
The Materials Project: A Community Data Resource for Accelerating New Materia...
The Materials Project: A Community Data Resource for Accelerating New Materia...The Materials Project: A Community Data Resource for Accelerating New Materia...
The Materials Project: A Community Data Resource for Accelerating New Materia...
 
Machine Learning Platform for Catalyst Design
Machine Learning Platform for Catalyst DesignMachine Learning Platform for Catalyst Design
Machine Learning Platform for Catalyst Design
 

Recently uploaded

Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Yara Milbes
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
ShamsuddeenMuhammadA
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 

Recently uploaded (20)

Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 

FireWorks workflow software

  • 1. FireWorks workflow software MAVRL workshop | Nov 2014 Anubhav Jain Energy & Environmental Technologies Berkeley Lab
  • 2. ¡ There was no real “system” for running jobs ¡ Everything was very VASP specific ¡ No error detection / failure recovery ¡ When there was a mistake, it would take a week of manual labor to fix and rerun
  • 3. ¡ The first attempt was a horrible mash-up of things we had already built § Complicated by having 2 people “in charge” ¡ Sometimes it is better to start from a blank piece of paper with 1 leader
  • 4. ¡ #1 Google hit for “Python workflow software” § now even beats Adobe Fireworks for #1 spot for “Fireworks workflow”! ¡ Won NERSC award for innovative use of HPC ¡ Used in many applications § genomics to computer graphics § this is not an “internal code” for running crystals ¡ Doc page ~200 hits/week § 1/10th of Materials Project
  • 5. ¡ What is FireWorks and why use it? ¡ Practical: learn to use FireWorks
  • 6. calc1 restart test_2 scp files/qsub wait for finish retry failures/copy files/qsub again
  • 7. calc1 restart try_2 scp files/qsub wait for finish retry failures/copy files/qsub again
  • 8. LAUNCHPAD ROCKET LAUNCHER / QUEUE LAUNCHER FW 1 FW 2 FW 3 FW 4 Directory 1 Directory 2
  • 9. ? You can scale without human effort Easily customize what gets run where
  • 10. ¡ Easy-to-install § FW currently at NERSC, SDSC, group clusters – Blue Gene planned ¡ Work within the limits of queue policies ¡ Pack jobs automatically
  • 11.
  • 12. No job left behind!
  • 13. ¡ both job details (scripts+parameters) and launch details are automatically stored what machine what time what directory what was the output when was it queued when did it start running when was it completed LAUNCH
  • 14. ¡ Soft failures, hard failures, human errors ¡ We’ve been through it many times now… ¡ No longer a week’s effort § “lpad detect_lostruns –rerun” OR § “lpad rerun –s FIZZLED”
  • 15. Xiaohui can be replaced by digital Xiaohui, programmed into FireWorks
  • 16. ¡ Submitting millions of jobs § Easy to lose track of what was done before ¡ Multiple users submitting jobs ¡ Sub-workflow duplication A A Duplicate Job detection (if two workflows contain an identical step, ensure that the step is only run once and relevant information is still passed)
  • 17. ¡ Within workflow, or between workflows ¡ Completely flexible
  • 18. Now seems like a good time to bring up the last few lines of the OUTCAR of all failed jobs...
  • 19. ¡ Ridiculous amount of documentation and tutorials § complete strangers are experts w/o my help § but many grad students/ postdocs still complain w/o reading the docs ¡ Built in tasks § run BASH/Python scripts § file transfer (incl. remote) § write/copy/delete files ¡ Paper in submission § happy to share preprint
  • 20. ¡ What is FireWorks and why use it? ¡ Practical: learn to use FireWorks
  • 21. FW 1 Spec FireTask 1 FireTask 2 • Each FireWork is run in a separate directory, maybe on a different machine, within its own batch job (in queue mode) • The spec contains parameters needed to carry out FireTasks • FireTasks are run in succession in the same directory • A FireWork can modify the Spec of its children based on its output (pass information) through a FWAction • The FWAction can also modify the workflow FW 2 Spec FireTask 1 FW 3 Spec FWAction FireTask 1 FireTask 2 FireTask 3 FWAction
  • 22. input_array: [1, 2, 3] 1. Sum input array 2. Write to file 3. Pass result to next job input_array: [4, 5, 6] 1. Sum input array 2. Write to file 3. Pass result to next job 6 15 input_data: [6, 15] 1. Sum input data 2. Write to file 3. Pass result to next job ------------------------------------- 1. Copy result to home dir
  • 23. class MyAdditionTask(FireTaskBase): _fw_name = "My Addition Task" def run_task(self, fw_spec): input_array: [1, 2, 3] 1. Sum input array 2. Write to file 3. Pass result to next job input_array = fw_spec['input_array'] m_sum = sum(input_array) print("The sum of {} is: {}".format(input_array, m_sum)) with open('my_sum.txt', 'a') as f: f.writelines(str(m_sum)+'n') # store the sum; push the sum to the input array of the next sum return FWAction(stored_data={'sum': m_sum}, mod_spec=[{'_push': {'input_array': m_sum}}]) See also: http://pythonhosted.org/FireWorks/guide_to_writing_firetasks.html
  • 24. input_array: [1, 2, 3] 1. Sum input array 2. Write to file 3. Pass result to next job input_array: [4, 5, 6] 1. Sum input array 2. Write to file 3. Pass result to next job 6 15! input_data: [6, 15] 1. Sum input data 2. Write to file 3. Pass result to next job ------------------------------------- 1. Copy result to home dir # set up the LaunchPad and reset it launchpad = LaunchPad() launchpad.reset('', require_password=False) # create Workflow consisting of a AdditionTask FWs + file transfer fw1 = Firework(MyAdditionTask(), {"input_array": [1,2,3]}, name="pt 1A") fw2 = Firework(MyAdditionTask(), {"input_array": [4,5,6]}, name="pt 1B") fw3 = Firework([MyAdditionTask(), FileTransferTask({"mode": "cp", "files": ["my_sum.txt"], "dest": "~"})], name="pt 2") wf = Workflow([fw1, fw2, fw3], {fw1: fw3, fw2: fw3}, name="MAVRL test") launchpad.add_wf(wf) # launch the entire Workflow locally rapidfire(launchpad, FWorker())
  • 25. ¡ lpad get_wflows -d more ¡ lpad get_fws -i 3 -d all ¡ lpad webgui ¡ Also rerun features See all reporting at official docs: http://pythonhosted.org/FireWorks
  • 26. ¡ There are a ton in the documentation and tutorials, just try them! § http://pythonhosted.org/FireWorks ¡ I want an example of running VASP! § https://github.com/materialsvirtuallab/fireworks-vasp § https://gist.github.com/computron/ ▪ look for “fireworks-vasp_demo.py” § Note: demo is only a single VASP run § multiple VASP runs require passing directory names between jobs ▪ currently you must do this manually ▪ in future, perhaps build into FireWorks
  • 27.
  • 28.
  • 29. ¡ It is not an accident that we are able to support so many advanced features in such a short time § many features not found anywhere else! ¡ FireWorks is designed to: § leverage modern tools § be extensible at a fundamental level, not post-hoc feature additions
  • 30. (this is YAML, a bit prettier for humans but less pretty for computers) fws: -­‐ fw_id: 1 spec: _tasks: -­‐ _fw_name: ScriptTask: script: echo 'To be, or not to be,’ -­‐ fw_id: 2 spec: _tasks: -­‐ _fw_name: ScriptTask script: echo 'that is the question:’ links: 1: -­‐ 2 metadata: {} The same JSON document will produce the same result on any computer (with the same Python functions).
  • 31. (this is YAML, a bit prettier for humans but less pretty for computers) fws: -­‐ fw_id: 1 spec: _tasks: -­‐ _fw_name: ScriptTask: script: echo 'To be, or not to be,’ -­‐ fw_id: 2 spec: _tasks: -­‐ _fw_name: ScriptTask script: echo 'that is the question:’ links: 1: -­‐ 2 metadata: {} Just some of your search options: • simple matches • match in array • greater than/less than • regular expressions • match subdocument • Javascript function • MapReduce… All for free, and all on the native workflow format!
  • 32. Use MongoDB’s dictionary update language to allow for JSON document updates Workflows can create new workflows or add to current workflow • a recursive workflow • calculation “detours” • branches
  • 33.
  • 34. ¡ Theme: Worker machine pulls a job & runs it ¡ Variation 1: § different workers can be configured to pull different types of jobs via config + MongoDB ¡ Variation 2: § worker machines sort the jobs by a priority key and pull matching jobs the highest priority
  • 35. Queue launcher (running on Hopper head node) thruput job thruput job thruput job thruput job thruput job thruput job thruput job
  • 36. Job wakes up when PBS runs it ¡ more complex queuing schemes also possible § it’s always the same pull and run, or a slight variation on it! Grabs the latest job description from an external DB (pull) Runs the job based on DB description
  • 37. ¡ Multiple processes pull and run jobs simultaneously § It is all the same thing, just sliced* different ways! Query&Job&*>&&&job&A!!*>&update&DB& mpirun&*>&Node&1% Query&Job&*>&& &job&B!!*>&update&DB&& mpirun&*>&Node&2% Query&Job&*>&&&job&X&&*>&Update&DB& mpirun&*>&Node&n% Independent&Processes& 1!large!job! mol&a% mol&b% mol&x% *get it? wink wink
  • 38. because jobs are JSON, they are completely serializable!
  • 39. ¡ When a job runs, a separate thread periodically pings an “alive” signal to the database ¡ If that alive signal doesn’t appear for some time, the job is dead § this method is robust for all types of failures ¡ The ping thread is reused to also track the output files and report the results to the database