Title: QCDml Tutorial
1QCDml Tutorial
- How to mark up your configurations
2Contents
- FAQs on using XML schema
- Defining QCDml
- Namespaces and validation
- Example XML IDs
- Ensemble and config
- Ensemble actions, algorithms and management
metadata - Config what goes where
- Babble about BinX
- Metadata catalogue demo
3FAQs about XML schema
- What is XML schema?
- Collection of rules for XML documents
- An XML schema is itself an XML document
- Why do we need an XML schema?
- Computers can read and understand XML IDs
- ltlengthgt16lt/lengthgt
- Meaning of length is context dependent
- Do I need to learn XML schema
- No. Schema makes it easier to produce XML
4QCDml1.0
- Metadata split into two schemata
- Ensemble XML ltmarkovChain/gt
- Config XML ltgaugeConfiguration/gt
- N.B. use lowerCamelConvention
- ILDG website for XML schema files
- http//www.lqcd.org/ildg
- Go to Metadata and follow links
- Version 1.0 online and ready to use
5Namespaces
- Example XML ID for UKQCD data
- XML Namespace defined by W3.org as
- A collection of names identified by a URI
reference
6First namespace
- URI defines namespace for QCDml
- This is the default namespace
- All elements of QCDml belong to this namespace
7Second namespace
- Namespace of XML schema itself
- Prefix ltxsigt for elements of XML schema
- XML ID is valid against WC3 XML schema
8SchemaLocation
- The namespace of the schema
- The file which contains the schema
- URI namespace can be URL of the schema instance
not compulsory
9Logical filename
- Unique URI for a file in a namespace
- Uniquely identifies this ensemble in ILDG
namespace
10Validation
- Verify XML ID is valid against a schema
- Schema aware applications can use XML ID
- Can write XML in vi,emacs etc
- CMM uses XMLSpy for schema and ID manipulation
- built in validator, create XML ID from schema
- http//www.w3.org/XML/Schema
- Many different tools
11QCDml Ensemble ltaction/gt
UML representation of schema
Split into quark and gluon sections
12Ensemble XML - actions
- Inheritance tree - check for your action in schema
13Which elements?
- Schema defines required elements
- UKQCD NP clover
14UKQCD Ensemble example
Glossary not computer readable How cSW was
determined References etc
15NumberOfFlavours
Number of degenerate flavours for which these
coupling values apply
16MILC 21 staggered Ensemble
ltcouplings/gt is array valued Non-degenerate
flavours shown with different couplings Mass
0.02 Mass 0.05
17Management
- Metadata created when Ensemble registered with
ILDG - Yet to be created middleware will do this
18Algorithm
- Algorithmic metadata split between ensemble and
algorithm - Most metadata is unconstrained parameter ltname/gt
ltvalue/gt pairs - Relevant information can be found
- Glossary document for references etc
- Hierarchical structure for algorithms is
- difficult to create
- difficult to make extenisble
19Algorithm Example
Glossary for detailed information
Unconstrained parameter ltname/gt ltvalue/gt pairs
20Config XML
Machine and code details In principle these could
be different for configurations in the same
ensemble
21Config Management
Checksum for config binary Zeroeth ltrevision/gt is
generate data, as this occurs before submission
to ILDG
22Precision
Precision (double or float) in which the
calculation was done
23markovStep
Logical File name of the ensemble in the ILDG
namespace
24dataLFN
Logical File name of the configuration in the
ILDG namespace
25The markov chain
Where the configuration is in the trajectory of
markov chain
26avePlaquette
Very useful metadata, can be used to check data
transformations are correct
27Config UKQCD example
Application codes can write this info either as
QCDml Or tool can convert the IO to QCDml
28BinX
- XML markup for binary data
- Library for manipulating marked up data
- Production codes do not use BinX library
- But easy to mark up data format in BinX style
- ILDG middleware can use BinX for data
manipulations - http//www.edikt.org/binx
- BinX under discussion by Middleware Metadata WG
for file format.
29Gauge config BinX
Small Written once per ensemble write code on top
of BinX library Change array order 2x3 ?
3x3 average plaquette ILDG BinX based gauge
config manipulator?
30Correlator data
Compact. No standard shape to correlators BinX
will read in any shape
31Array stripper
BinX BJs Xpath reader Code reads this
XML Produces single slice array in text/XML From
any size/shape array Schema for correlator
channels ILDG middleware extract channel from any
correlator