NISTfit: A Natively Multithreaded C++11 Framework for Model Development

被引:1
|
作者
Bell, Ian [1 ]
Kunick, Matthias [2 ]
机构
[1] NIST, Appl Chem & Mat Div, Mat Measurement Lab, Boulder, CO 80301 USA
[2] Zittau Gorlitz Univ Appl Sci, Thermodynam Dept, D-02763 Zittau, Germany
关键词
C plus; HPC; optimization;
D O I
10.6028/jres.123.003
中图分类号
TH7 [仪器、仪表];
学科分类号
0804 ; 080401 ; 081102 ;
摘要
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 scientifc 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 fle is provided. • Easy to use: There are a multitude of similar libraries for model ftting (e.g., MINPACK1, levmar2, Eigen's LevenbergMarquardt module3, to name but a few) that a) are based on archaic FORTRAN/C/C++ constructs, b) require signifcant boilerplate to solve simple problems, or c) have diffcult-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 ftting 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 ftting for suffciently expensive models. © 2018 National Institute of Standards and Technology. All rights reserved.
引用
收藏
页数:12
相关论文
共 50 条
  • [1] MolBioLib: a C++11 framework for rapid development and deployment of bioinformatics tasks
    Ohsumi, Toshiro K.
    Borowsky, Mark L.
    [J]. BIOINFORMATICS, 2012, 28 (19) : 2412 - 2416
  • [2] Algebraic Semantics for C++11 Memory Model
    Xiao, Lili
    Zhu, Huibiao
    He, Mengda
    Qin, Shengchao
    [J]. 2022 IEEE 46TH ANNUAL COMPUTERS, SOFTWARE, AND APPLICATIONS CONFERENCE (COMPSAC 2022), 2022, : 1513 - 1518
  • [3] C++11 in Parallel
    Hummel, Joseph E.
    [J]. SIGCSE 12: PROCEEDINGS OF THE 43RD ACM TECHNICAL SYMPOSIUM ON COMPUTER SCIENCE EDUCATION, 2011, : 656 - 656
  • [4] A Practical Approach for Model Checking C/C++11 Code
    Norris, Brian
    Demsky, Brian
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2016, 38 (03):
  • [5] Hydra: a C++11 framework for data analysis in massively parallel platforms
    Alves Junior, A. A.
    Sokoloff, M. D.
    [J]. 18TH INTERNATIONAL WORKSHOP ON ADVANCED COMPUTING AND ANALYSIS TECHNIQUES IN PHYSICS RESEARCH (ACAT2017), 2018, 1085
  • [6] Repairing Sequential Consistency in C/C++11
    Lahav, Ori
    Vafeiadis, Viktor
    Kang, Jeehoon
    Hur, Chung-Kil
    Dreyer, Derek
    [J]. ACM SIGPLAN NOTICES, 2017, 52 (06) : 618 - 632
  • [7] An operational semantics for C/C++11 concurrency
    [J]. 2016, Association for Computing Machinery, 2 Penn Plaza, Suite 701, New York, NY 10121-0701, United States (51):
  • [8] Preparing for the new C++11 standard
    Naumann, Axel
    [J]. INTERNATIONAL CONFERENCE ON COMPUTING IN HIGH ENERGY AND NUCLEAR PHYSICS 2012 (CHEP2012), PTS 1-6, 2012, 396
  • [9] Checking Concurrent Data Structures Under the C/C++11 Memory Model
    Ou, Peizhao
    Demsky, Brian
    [J]. ACM SIGPLAN NOTICES, 2017, 52 (08) : 45 - 59
  • [10] An Operational Semantics for C/C++11 Concurrency
    Nienhuis, Kyndylan
    Memarian, Kayvan
    Sewell, Peter
    [J]. ACM SIGPLAN NOTICES, 2016, 51 (10) : 111 - 128