U.S. flag

An official website of the United States government

Dot gov

Official websites use .gov
A .gov website belongs to an official government organization in the United States.

Https

Secure .gov websites use HTTPS
A lock () or https:// means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites.

Breadcrumb

  1. Home

NISTfit

NISTFIT is a heavily abstracted C++-based kernel for fitting correlations. The software is written in our source languages. The current trend in computer architecture is for increasingly parallel computation while the clock frequency stagnates. The increase in computing speed is achieved by dividing a process into several threads which are executed in parallel on multiple processors, processors with multiple cores, cores that are able to handle multiple threads (hyper-threading), graphical processing units (GPU), or co-processors. In order to take advantage of these new architectures, algorithms that have historically been implemented for serial evaluation need to be refactored for parallelization. In this work, a native multithreading framework in C++11 for scientific and engineering model development is presented. The motivation for NISTfit is to develop a modern C++11-based library for this problem that is: ? Cross-platform: NISTfit has only very minimal header-only dependencies (Eigen and ThreadPool), and builds reliably on all major architectures; a CMake build file is provided. ? Easy to use: There are a multitude of similar libraries for model fitting (e.g., MINPACK 1, levmar2, Eigen?s Levenberg-Marquardt module 3, to name but a few) that a) are based on archaic FORTRAN/C/C++ constructs, b) require significant boilerplate to solve simple problems, or c) have difficult-to-build dependencies. It is the opinion of the authors of NISTfit that NISTfit strikes a good balance of power and ease-of-use for simple fitting problems. The code utilizes modern C++11 constructs and will build on any C++11 compliant compiler. ? Parallelizable: The future is parallel, and NISTfit is able to achieve near theoretical speedup as more cores are made available to the fitting for sufficiently expensive models.

About this Dataset

Updated: 2025-04-06
Metadata Last Updated: 2017-12-21 00:00:00
Date Created: N/A
Data Provided by:
Dataset Owner: N/A

Access this data

Contact dataset owner Landing Page URL
Download URL
Table representation of structured data
Title NISTfit
Description NISTFIT is a heavily abstracted C++-based kernel for fitting correlations. The software is written in our source languages. The current trend in computer architecture is for increasingly parallel computation while the clock frequency stagnates. The increase in computing speed is achieved by dividing a process into several threads which are executed in parallel on multiple processors, processors with multiple cores, cores that are able to handle multiple threads (hyper-threading), graphical processing units (GPU), or co-processors. In order to take advantage of these new architectures, algorithms that have historically been implemented for serial evaluation need to be refactored for parallelization. In this work, a native multithreading framework in C++11 for scientific and engineering model development is presented. The motivation for NISTfit is to develop a modern C++11-based library for this problem that is: ? Cross-platform: NISTfit has only very minimal header-only dependencies (Eigen and ThreadPool), and builds reliably on all major architectures; a CMake build file is provided. ? Easy to use: There are a multitude of similar libraries for model fitting (e.g., MINPACK 1, levmar2, Eigen?s Levenberg-Marquardt module 3, to name but a few) that a) are based on archaic FORTRAN/C/C++ constructs, b) require significant boilerplate to solve simple problems, or c) have difficult-to-build dependencies. It is the opinion of the authors of NISTfit that NISTfit strikes a good balance of power and ease-of-use for simple fitting problems. The code utilizes modern C++11 constructs and will build on any C++11 compliant compiler. ? Parallelizable: The future is parallel, and NISTfit is able to achieve near theoretical speedup as more cores are made available to the fitting for sufficiently expensive models.
Modified 2017-12-21 00:00:00
Publisher Name National Institute of Standards and Technology
Contact mailto:[email protected]
Keywords Model fitting , thermodynamics , optimization
{
    "identifier": "60DE5B6BBA1BB062E0531A570681F4381883",
    "accessLevel": "public",
    "contactPoint": {
        "hasEmail": "mailto:[email protected]",
        "fn": "Ian Bell"
    },
    "programCode": [
        "006:045"
    ],
    "landingPage": "https:\/\/data.nist.gov\/od\/id\/60DE5B6BBA1BB062E0531A570681F4381883",
    "title": "NISTfit",
    "description": "NISTFIT is a heavily abstracted C++-based kernel for fitting correlations. The software is written in our source languages. The current trend in computer architecture is for increasingly parallel computation while the clock frequency stagnates. The increase in computing speed is achieved by dividing a process into several threads which are executed in parallel on multiple processors, processors with multiple cores, cores that are able to handle multiple threads (hyper-threading), graphical processing units (GPU), or co-processors. In order to take advantage of these new architectures, algorithms that have historically been implemented for serial evaluation need to be refactored for parallelization. In this work, a native multithreading framework in C++11 for scientific and engineering model development is presented. The motivation for NISTfit is to develop a modern C++11-based library for this problem that is: ?          Cross-platform: NISTfit has only very minimal header-only dependencies (Eigen and ThreadPool), and builds reliably on all major architectures; a CMake build file is provided. ?          Easy to use: There are a multitude of similar libraries for model fitting (e.g., MINPACK 1, levmar2, Eigen?s Levenberg-Marquardt module 3, to name but a few) that a) are based on archaic FORTRAN\/C\/C++ constructs, b) require significant boilerplate to solve simple problems, or c) have difficult-to-build dependencies. It is the opinion of the authors of NISTfit that NISTfit strikes a good balance of power and ease-of-use for simple fitting problems. The code utilizes modern C++11 constructs and will build on any C++11 compliant compiler. ?          Parallelizable: The future is parallel, and NISTfit is able to achieve near theoretical speedup as more cores are made available to the fitting for sufficiently expensive models.",
    "language": [
        "en"
    ],
    "distribution": [
        {
            "downloadURL": "https:\/\/s3.amazonaws.com\/nist-midas\/1883\/NISTfit.zip",
            "mediaType": "text\/plain"
        },
        {
            "downloadURL": "https:\/\/s3.amazonaws.com\/nist-midas\/1883\/NISTfit.zip.sha256",
            "mediaType": "text\/plain"
        },
        {
            "accessURL": "https:\/\/doi.org\/10.18434\/M39W9S"
        }
    ],
    "bureauCode": [
        "006:55"
    ],
    "modified": "2017-12-21 00:00:00",
    "publisher": {
        "@type": "org:Organization",
        "name": "National Institute of Standards and Technology"
    },
    "theme": [
        "Mathematics and Statistics:Numerical methods and software"
    ],
    "keyword": [
        "Model fitting",
        "thermodynamics",
        "optimization"
    ]
}