Accurate Measurement of Small Execution Times – Getting Around Measurement Errors Carlos Moreno, Sebastian Fischmeister

Total Page:16

File Type:pdf, Size:1020Kb

Accurate Measurement of Small Execution Times – Getting Around Measurement Errors Carlos Moreno, Sebastian Fischmeister 1 Accurate Measurement of Small Execution Times – Getting Around Measurement Errors Carlos Moreno, Sebastian Fischmeister Abstract—Engineers and researchers often require accurate example, a typical mitigation approach consists of executing measurements of small execution times or duration of events in F multiple times, as shown below: a program. Errors in the measurement facility can introduce time start = get_current_time() important challenges, especially when measuring small intervals. Repeat N times: Mitigating approaches commonly used exhibit several issues; in Execute F particular, they only reduce the effect of the error, and never time end = get_current_time() eliminate it. In this letter, we propose a technique to effectively // execution time = (end - start) / N eliminate measurement errors and obtain a robust statistical The execution time that we obtain is subject to the mea- estimate of execution time or duration of events in a program. surement error divided by N; by choosing a large enough The technique is simple to implement, yet it entirely eliminates N, we can make this error arbitrarily low. However, this the systematic (non-random) component of the measurement error, as opposed to simply reduce it. Experimental results approach has several potential issues: (1) repeating N times confirm the effectiveness of the proposed method. can in turn introduce an additional unknown overhead, if coded as a for loop. Furthermore, this is subject to uncertainty in I. MOTIVATION that the compiler may or may not implement loop unrolling, meaning that the user could be unaware of whether this Software engineers and researchers often require accurate overhead is present; (2) the efficiency of the error reduction measurements of small execution times or duration of events in process is low; that is, we require a large N (thus, potentially a program. These measurements may be necessary for example large experiment times) to significantly reduce the error; and for performance analysis or comparison, or for measurement- (3) re-executing F may require re-initialization through some based worst-case execution time (WCET) analysis. Obtaining call to an additional function, which then introduces a new execution times analytically from the assembly code is increas- uncertainty: ingly difficult with modern architectures, and often the most time start = get_current_time() practical alternative is actual measurement during execution. Repeat N times: Measurement errors and uncertainties introduce an impor- initialize_parameters() Execute F tant difficulty, especially for short intervals. For example, a time end = get_current_time() basic approach to measure the execution time of a given // execution time = (end - start) / N function or fragment of code F is the following: In this case the measured time corresponds to time start = get_current_time() the execution time of F plus the execution time of Execute F initialize_parameters() and it is not possible to determine time end = get_current_time() // execution time = end - start either of the two values. Unfortunately, the resulting measurement includes the Other mitigating approaches include profiling the execution actual execution time of F plus an unknown amount time of the get_current_time() facility. For example, mea- of time corresponding to the internal processing time of sure the execution time of a null fragment, and the measured average value corresponds to the systematic error or overhead get_current_time(). With modern OSs, invocation of the in get_current_time(): get_current_time() facility can even involve a context Repeat N times: switch to kernel mode and back. This unknown overhead start = get_current_time() comprises a systematic (non-random) component and a noise end = get_current_time() (random) component. The systematic error is in general related sum = sum + (end - start) to the execution time of the get_current_time() facility, overhead = sum / N whereas the random component can be due to a variety of This approach, however, can be ineffective for modern factors such as measurement based on clock ticks or schedul- architectures where low-level hardware aspects such as cache ing issues, or even electrical noise in the case of measurement and pipelines can cause a difference in the execution time of based on pin-toggling. Though our work addresses both, get_current_time() when executed in succession vs. when our focus is on the systematic error, which is the one that executed with other code in between calls. commonly used approaches fail to effectively eliminate. Embedded engineers often measure execution time by ob- Some of the common mitigating approaches only reduce the serving a signal at an output pin. They instrument the code effect of these errors and never completely eliminate it. In our with an output port instruction to toggle a pin, and measure time between edges to obtain execution times. Though this Carlos Moreno and Sebastian Fischmeister are with the Electrical and Computer Engineering Department of the University of Waterloo, Canada. mechanism in general yields higher accuracy, it is still subject E-mail: fcmoreno,sfi[email protected] to the same types of measurement errors discussed above. 2 II. RELATED WORK subject to noise. However, we can reduce the effect of noise To the best of our knowledge, no concrete effective approaches by repeating this differential measurement multiple times. have been suggested to get around these issues related to We remark that coding these repetitions as a for loop is measurement errors. Some common ideas and themes seem to not an issue, since the loop overhead occurs outside of the be present, some of them oriented to measuring variations in measurements. The idea is illustrated below: Repeat N times: timing parameters (see for example [1]). The effect of outliers time T1 = get_current_time() is a recurrent theme. Typical approaches involve statistics that Execute F are immune to the effect of outliers, such as the median. time T2 = get_current_time() Execute F Jain [2] and Laplante [3] both discuss performance analysis Execute F including estimation of execution times and statistical analysis time T3 = get_current_time() of experimental data. Oliveira et. al [4] proposed a system total += (T3 - T2) - (T2 - T1) where statistically rigorous measurements are extracted under // execution time = total / N carefully controlled environment, effectively getting around This technique is simple to implement, and by choosing some of the issues that can disrupt the parameters being a sufficiently large N, we can make the effect of the noise measured. These works, however, focus on the extraction and arbitrarily low. However, as our experimental results confirm, analysis of experimental data for performance evaluation, and the technique presented in the next section produces mea- not on the actual measurement of execution times. surements with higher precision for the same total number Stewart [5] covers basic techniques for measuring execution of measurements. time and applicability to WCET and performance analysis. IV. STRAIGHT LINE FITTING Lilja [6] also covers some of the basic techniques. It provides We now present a technique that is more efficient in terms of a good set of definitions, terminology, and modeling of mea- reduction of the noise for a given total number of measure- surement errors and their sources. In particular, [6] presents ments. Without loss of generality, we assume a zero-mean a good discussion on the notions of accuracy, precision, and model for the measurement noise.1 In the simpler case where resolution. CPU clock cycle counters in modern processors no re-initialization is necessary before each invocation of F, (e.g., Intel [7] and ARM [8]) can provide high resolution, a statistical estimate of T can be obtained through a straight but they don’t necessarily avoid the measurement artifacts that e line fitting given the multiple points (N ;T ), where T is the reduce accuracy and precision in the measurements. k k k measured time when executing F N times. The slope of this In the context of WCET analysis, hybrid approaches [9] use k line corresponds to T . static analysis to determine WCET in terms of execution times e We can set up a scheme where M measurements are taken, of fragments. These times are measured with pin-toggling where the first time we measure one execution of F, then two instrumentation, assisted by a special logic-analyzer hardware. executions, then three, and so on until measuring M executions Our proposed approach exhibits important advantages over of F. Following the above notation (N ;T ), this would the pin-toggling instrumentation approach, yet it can benefit k k correspond to the case where N = k, with 1 6 k 6 M. from the static analysis component that can compensate for k Since we do not require a large number of repetitions for complex hardware features that introduce a relationship where F (i.e., M can be a relatively low value), it is feasible to execution paths affect the execution times being measured. execute this sequence without requiring a for loop. This III. GETTING AROUND MEASUREMENT ERRORS avoids the issue of introducing additional unknown overhead, as mentioned in Section I. We start by addressing the systematic error only. In the next The straight line y = ax + b for a set of M points (x ; y ) sections we include the random part (noise) in the analysis. k k can be easily determined [10]. In our case, we obtain the For N consecutive executions of F, the measured execution value of T (the slope, a) substituting x (= N ) = k and time T corresponds to T = NT + ϵ, where T is the e k k e e y = T . Figure 1 shows an example with M = 20 using execution time of F and ϵ is the overhead from the invocations k k POSIX’s clock_gettime() to measure a ≈40 ns execution of get_current_time(). We notice that it is impossible to time (best-fitting line is y = 40:4 x + 18:8). determine T , since we have two unknowns. e One of the important advantages of our method is its robust- The key observation is that with an additional measurement ness against sporadic measurements with large errors.
Recommended publications
  • Metric System Units of Length
    Math 0300 METRIC SYSTEM UNITS OF LENGTH Þ To convert units of length in the metric system of measurement The basic unit of length in the metric system is the meter. All units of length in the metric system are derived from the meter. The prefix “centi-“means one hundredth. 1 centimeter=1 one-hundredth of a meter kilo- = 1000 1 kilometer (km) = 1000 meters (m) hecto- = 100 1 hectometer (hm) = 100 m deca- = 10 1 decameter (dam) = 10 m 1 meter (m) = 1 m deci- = 0.1 1 decimeter (dm) = 0.1 m centi- = 0.01 1 centimeter (cm) = 0.01 m milli- = 0.001 1 millimeter (mm) = 0.001 m Conversion between units of length in the metric system involves moving the decimal point to the right or to the left. Listing the units in order from largest to smallest will indicate how many places to move the decimal point and in which direction. Example 1: To convert 4200 cm to meters, write the units in order from largest to smallest. km hm dam m dm cm mm Converting cm to m requires moving 4 2 . 0 0 2 positions to the left. Move the decimal point the same number of places and in the same direction (to the left). So 4200 cm = 42.00 m A metric measurement involving two units is customarily written in terms of one unit. Convert the smaller unit to the larger unit and then add. Example 2: To convert 8 km 32 m to kilometers First convert 32 m to kilometers. km hm dam m dm cm mm Converting m to km requires moving 0 .
    [Show full text]
  • Introduction to Measurements & Error Analysis
    Introduction to Measurements & Error Analysis The Uncertainty of Measurements Some numerical statements are exact: Mary has 3 brothers, and 2 + 2 = 4. However, all measurements have some degree of uncertainty that may come from a variety of sources. The process of evaluating this uncertainty associated with a measurement result is often called uncertainty analysis or error analysis. The complete statement of a measured value should include an estimate of the level of confidence associated with the value. Properly reporting an experimental result along with its uncertainty allows other people to make judgments about the quality of the experiment, and it facilitates meaningful comparisons with other similar values or a theoretical prediction. Without an uncertainty estimate, it is impossible to answer the basic scientific question: “Does my result agree with a theoretical prediction or results from other experiments?” This question is fundamental for deciding if a scientific hypothesis is confirmed or refuted. When we make a measurement, we generally assume that some exact or true value exists based on how we define what is being measured. While we may never know this true value exactly, we attempt to find this ideal quantity to the best of our ability with the time and resources available. As we make measurements by different methods, or even when making multiple measurements using the same method, we may obtain slightly different results. So how do we report our findings for our best estimate of this elusive true value? The most common way to show the range of values that we believe includes the true value is: measurement = best estimate ± uncertainty (units) Let’s take an example.
    [Show full text]
  • Software Testing
    Software Testing PURPOSE OF TESTING CONTENTS I. Software Testing Background II. Software Error Case Studies 1. Disney Lion King 2. Intel Pentium Floating Point Division Bug 3. NASA Mars Polar Lander 4. Patriot Missile Defense System 5. Y2K Bug III. What is Bug? 1. Terms for Software Failure 2. Software Bug: A Formal Definition 3. Why do Bugs occur? and cost of bug. 4. What exactly does a Software Tester do? 5. What makes a good Software Tester? IV. Software Development Process 1. Product Components 2. What Effort Goes into a Software Product? 3. What parts make up a Software Product? 4. Software Project Staff V. Software Development Lifecycle Models 1. Big Bang Model 2. Code and Fix Model 3. Waterfall Model 4. Spiral Model VI. The Realities of Software Testing VII. Software Testing Terms and Definition 1. Precision and Accuracy 2. Verification and Validation 3. Quality Assurance and Quality Control Anuradha Bhatia Software Testing I. Software Testing Background 1. Software is a set of instructions to perform some task. 2. Software is used in many applications of the real world. 3. Some of the examples are Application software, such as word processors, firmware in an embedded system, middleware, which controls and co-ordinates distributed systems, system software such as operating systems, video games, and websites. 4. All of these applications need to run without any error and provide a quality service to the user of the application. 5. The software has to be tested for its accurate and correct working. Software Testing: Testing can be defined in simple words as “Performing Verification and Validation of the Software Product” for its correctness and accuracy of working.
    [Show full text]
  • How Are Units of Measurement Related to One Another?
    UNIT 1 Measurement How are Units of Measurement Related to One Another? I often say that when you can measure what you are speaking about, and express it in numbers, you know something about it; but when you cannot express it in numbers, your knowledge is of a meager and unsatisfactory kind... Lord Kelvin (1824-1907), developer of the absolute scale of temperature measurement Engage: Is Your Locker Big Enough for Your Lunch and Your Galoshes? A. Construct a list of ten units of measurement. Explain the numeric relationship among any three of the ten units you have listed. Before Studying this Unit After Studying this Unit Unit 1 Page 1 Copyright © 2012 Montana Partners This project was largely funded by an ESEA, Title II Part B Mathematics and Science Partnership grant through the Montana Office of Public Instruction. High School Chemistry: An Inquiry Approach 1. Use the measuring instrument provided to you by your teacher to measure your locker (or other rectangular three-dimensional object, if assigned) in meters. Table 1: Locker Measurements Measurement (in meters) Uncertainty in Measurement (in meters) Width Height Depth (optional) Area of Locker Door or Volume of Locker Show Your Work! Pool class data as instructed by your teacher. Table 2: Class Data Group 1 Group 2 Group 3 Group 4 Group 5 Group 6 Width Height Depth Area of Locker Door or Volume of Locker Unit 1 Page 2 Copyright © 2012 Montana Partners This project was largely funded by an ESEA, Title II Part B Mathematics and Science Partnership grant through the Montana Office of Public Instruction.
    [Show full text]
  • Measuring in Metric Units BEFORE Now WHY? You Used Metric Units
    Measuring in Metric Units BEFORE Now WHY? You used metric units. You’ll measure and estimate So you can estimate the mass using metric units. of a bike, as in Ex. 20. Themetric system is a decimal system of measurement. The metric Word Watch system has units for length, mass, and capacity. metric system, p. 80 Length Themeter (m) is the basic unit of length in the metric system. length: meter, millimeter, centimeter, kilometer, Three other metric units of length are themillimeter (mm) , p. 80 centimeter (cm) , andkilometer (km) . mass: gram, milligram, kilogram, p. 81 You can use the following benchmarks to estimate length. capacity: liter, milliliter, kiloliter, p. 82 1 millimeter 1 centimeter 1 meter thickness of width of a large height of the a dime paper clip back of a chair 1 kilometer combined length of 9 football fields EXAMPLE 1 Using Metric Units of Length Estimate the length of the bandage by imagining paper clips laid next to it. Then measure the bandage with a metric ruler to check your estimate. 1 Estimate using paper clips. About 5 large paper clips fit next to the bandage, so it is about 5 centimeters long. ch O at ut! W 2 Measure using a ruler. A typical metric ruler allows you to measure Each centimeter is divided only to the nearest tenth of into tenths, so the bandage cm 12345 a centimeter. is 4.8 centimeters long. 80 Chapter 2 Decimal Operations Mass Mass is the amount of matter that an object has. The gram (g) is the basic metric unit of mass.
    [Show full text]
  • Breathe London-NPL-Statistical Methods for Characterisation Of
    Statistical methods for performance characterisation of lower-cost sensors J D Hayward, A Forbes, N A Martin, S Bell, G Coppin, G Garcia and D Fryer 1.1 Introduction This appendix summarises the progress of employing the Breathe London monitoring data together with regulated reference measurements to investigate the application of machine learning tools to extract information with a view to quantifying measurement uncertainty. The Breathe London project generates substantial data from the instrumentation deployed, and the analysis requires a comparison against the established reference methods. The first task was to develop programs to extract the various datasets being employed from different providers and to store them in a stan- dardised format for further processing. This data curation allowed us to audit the data, establishing errors in the AQMesh data and the AirView cars as well as monitor any variances in the data sets caused by conditions such as fog/extreme temperatures. This includes writing a program to parse the raw AirView data files from the high quality refer- ence grade instruments installed in the mobile platforms (Google AirView cars), programs to commu- nicate with and download data from the Applications Program Interfaces (APIs) provided by both Air Monitors (AQMesh sensor systems) and Imperial College London (formerly King’s College London) (London Air Quality Network), and a program that automatically downloads CSV files from the DE- FRA website, which contains the air quality data from the Automatic Urban Rural Network (AURN). This part of the development has had to overcome significant challenges including the accommo- dation of different pollutant concentration units from the different database sources, different file formats, and the incorporation of data flags to describe the data ratification status.
    [Show full text]
  • EXPERIMENTAL METHOD Linear Dimension, Weight and Density
    UNIVERSITI TEKNIKAL No Dokumen: No. Isu/Tarikh: MALAYSIA MELAKA SB/MTU/T1/BMCU1022/1 4/06-07-2009 EXPERIMENTAL METHOD No. Semakan/Tarikh Jumlah Muka Surat Linear Dimension, Weight and Density 4/09-09-2009 4 OBJECTIVE Investigation of different types of equipment for linear dimension measurements and to study measurement accuracy and precision using commonly used measuring equipments. LEARNING OUTCOME At the end of this laboratory session, students should be able to 1. Identify various dimensional measuring equipments commonly used in a basic engineering laboratory. 2. Apply dimensional measuring equipments to measure various objects accurately. 3. Compare the measured data measured using different measuring equipments. 4. Determine the measured dimensional difference using different equipments correctly. 5. Answer basic questions related to the made measurement correctly. 6. Present the measured data in form of report writing according to the normal technical report standard and make clear conclusions of the undertaken tasks. THEORY Basic physical quantity is referred to a quantity which is measurable such as weight, length and time. These quantities could be combined and formed what one called the derived quantities. Some of the examples of derived quantities include parameter such as area, volume, density, velocity, force and many others. Measurement is a comparison process between standard quantities (true value) with measured quantity. Measurement apparatus complete with unit and dimension must be used in order to make a good and correct measurement. Accuracy means how close the measured value to the standard (true) value. Precision of measurement refers to repeatable values of the measurement and the results showed that its uncertainty is of the lowest degree.
    [Show full text]
  • MEMS Metrology Metrology What Is a Measurement Measurable
    Metrology • What is metrology? – It is the science of weights and measures • Refers primarily to the measurements of length, MEMS Metrology wetight, time, etc. • Mensuration- A branch of applied geometry – It measure the area and volume of solids from Dr. Bruce K. Gale lengths and angles Fundamentals of Micromachining • It also includes other engineering measurements for the establishment of a flat, plane reference surface What is a Measurement Measurable Parameters • A measurement is an act of assigning a • What do we want to • Pressure specific value to a physical variable measure? • Forces • The physical variable becomes the • Length or distance •Stress measured variable •Mass •Strain • Temperature • Measurements provide a basis for • Friction judgements about • Elemental composition • Resistance •Viscosity – Process information • Roughness • Diplacements or – Quality assurance •Depth distortions – Process control • Intensity •Time •etc. Components of a Measuring Measurement Systems and Tools System • Measurement systems are important tools for the quantification of the physical variable • Measurement systems extend the abilities of the human senses, while they can detect and recognize different degrees of physical variables • For scientific and engineering measurement, the selection of equipment, techniques and interpretation of the measured data are important How Important are Importance of Metrology Measurements? • In human relationships, things must be • Measurement is the language of science counted and measured • It helps us
    [Show full text]
  • Implementation and Performance Analysis of Precision Time Protocol on Linux Based System-On-Chip Platform
    Implementation and Performance Analysis of Precision Time Protocol on Linux based System-On-Chip Platform Mudassar Ahmed [email protected] MASTERPROJECT Kiel University of Applied Science MSc. Information Engineering in Kiel im Mai 2018 Declaration I hereby declare and confirm that this project is entirely the result of my own original work. Where other sources of information have been used, they have been indicated as such and properly acknowledged. I further declare that this or similar work has not been submitted for credit elsewhere. Kiel, May 9, 2018 Mudassar Ahmed [email protected] i Contents Declaration i Abstract iv List of Symbols and Abbreviations vii 1 Introduction 1 1.1 Research Objectives and Goals . 2 1.2 Approach . 2 1.3 Outline . 2 2 Literature Review 3 2.1 Time Synchronization . 3 2.2 Time Synchronization Technologies . 4 2.3 Overview of IEEE 1588 Precision Time Protocol (PTP) . 4 2.3.1 Scope of PTP Standard: . 5 2.3.2 Protocol Standard Messages . 5 2.3.3 Protocol Standard Devices . 6 2.3.4 Message Exchange and Delay Computation . 7 2.3.5 Protocol Hierarchy Establishment Mechanism . 9 3 PTP Infrastructure in Linux 11 3.1 Timestamping Mechanisms . 11 3.1.1 Software Timestamping . 11 3.1.2 Hardware Timestamping . 12 3.1.3 Linux kernel Support for Timestamping . 13 3.2 PTP Clock Infrastructure and Control API . 14 4 Design and Implementation 16 4.1 Tools and technologies . 16 4.1.1 LinuxPTP . 16 4.1.2 PTPd . 18 4.1.3 stress-ng . 18 4.1.4 iPerf .
    [Show full text]
  • Laser Power Measurement: Time Is Money
    Laser power measurement: Time is money SEAN BERGMAN Rapid, accurate laser power measurements meet high-throughput needs In nearly every any laser application, it’s necessary to measure laser output power to be able to obtain optimum results. For industrial applications, making power measurements often requires interrupting production and this creates a tradeoff. Specifically, is the cost of stopping or slowing production for laser measurement outweighed by the benefits that making the measurement will deliver? To make this determination, it’s useful to ask some specific questions. These include: How sensitive is my process to variations in laser power? How fast does my laser output typically change, and therefore, how frequently do I need make a laser measurement to keep my process within specification? [Native Advertisement] What is my production throughput? How much bad product will I make, and how much does this scrap cost me, when I delay making a laser measurement for a given amount of time? How long does it take to make the laser measurement, and what is the total cost of this measurement in terms of production downtime or manpower? For high-speed industrial processes based on high-power lasers, the answers to these questions often show that it is not possible to achieve a good tradeoff between measurement frequency and cost. This is because traditional thermopile laser power sensors are relatively slow, so making frequent measurements results in high production downtime. Alternatively, making infrequent measurements can result in high scrap rates. Thermopile power sensors Although they are relatively slow, thermopiles have long been used for measuring high-power lasers because high-speed photodiode detectors saturate at low power levels.
    [Show full text]
  • 3.1 Dimensional Analysis
    3.1 DIMENSIONAL ANALYSIS Introduction (For the Teacher).............................................................................................1 Answers to Activities 3.1.1-3.1.7........................................................................................8 3.1.1 Using appropriate unit measures..................................................................................9 3.1.2 Understanding Fundamental Quantities....................................................................14 3.1.3 Understanding unit definitions (SI vs Non-sI Units)................................................17 3.1.4 Discovering Key Relationships Using Fundamental Units (Equations)...................20 3.1.5 Using Dimensional Analysis for Standardizing Units...............................................24 3.1.6 Simplifying Calculations: The Line Method.............................................................26 3.1.7 Solving Problems with Dimensional Analysis ..........................................................29 INTRODUCTION (FOR THE TEACHER) Many teachers tell their students to solve “word problems” by “thinking logically” and checking their answers to see if they “look reasonable”. Although such advice sounds good, it doesn’t translate into good problem solving. What does it mean to “think logically?” How many people ever get an intuitive feel for a coluomb , joule, volt or ampere? How can any student confidently solve problems and evaluate solutions intuitively when the problems involve abstract concepts such as moles, calories,
    [Show full text]
  • Understanding Measurement Uncertainty in Certified Reference Materials 02 Accuracy and Precision White Paper Accuracy and Precision White Paper 03
    → White Paper Understanding measurement uncertainty in certified reference materials 02 Accuracy and Precision White Paper Accuracy and Precision White Paper 03 The importance of measurement uncertainty. This paper provides an overview of the importance of measurement uncertainty in the manufacturing and use of certified reference gases. It explains the difference between error and uncertainty, accuracy and precision. No measurement can be made with 100 percent accuracy. There is Every stage of the process, every measurement device used always a degree of uncertainty, but for any important measurement, introduces some uncertainty. Identifying and quantifying each source it’s essential to identify every source of uncertainty and to quantify the of uncertainty in order to present a test result with a statement uncertainty introduced by each source. quantifying the uncertainty associated with the result can be challenging. But no measurement is complete unless it is accompanied In every field of commerce and industry, buyers require certified by such a statement. measurements to give them assurances of the quality of goods supplied: the tensile strength of steel; the purity of a drug; the heating This white paper will provide an overview of sources of measurement power of natural gas, for example. uncertainty relating to the manufacture and use of certified reference gases. It will explain how uncertainty reported with a test result can Suppliers rely on test laboratories, either their own or third parties, be calculated and it will explain the important differences between to perform the analysis or measurement necessary to provide these uncertainty, accuracy and precision. assurances. Those laboratories in turn rely on the accuracy and precision of their test instruments, the composition of reference materials, and the rigour of their procedures, to deliver reliable and accurate measurements.
    [Show full text]