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 条
  • [11] Dynamic Race Detection for C++11
    Lidbury, Christopher
    Donaldson, Alastair F.
    [J]. ACM SIGPLAN NOTICES, 2017, 52 (01) : 443 - 457
  • [12] Compiler Testing via a Theory of Sound Optimisations in the C11/C++11 Memory Model
    Morisset, Robin
    Pawan, Pankaj
    Nardelli, Francesco Zappa
    [J]. ACM SIGPLAN NOTICES, 2013, 48 (06) : 187 - 196
  • [13] On the Quality of Implementation of the C++11 Thread Support Library
    Thoman, Peter
    Gschwandtner, Philipp
    Fahringer, Thomas
    [J]. 23RD EUROMICRO INTERNATIONAL CONFERENCE ON PARALLEL, DISTRIBUTED, AND NETWORK-BASED PROCESSING (PDP 2015), 2015, : 94 - 98
  • [14] High-level Multicore Programming with C++11
    Szugyi, Zalan
    Torok, Mark
    Pataki, Norbert
    Kozsik, Tamas
    [J]. COMPUTER SCIENCE AND INFORMATION SYSTEMS, 2012, 9 (03) : 1187 - 1202
  • [15] Automatic Checking of the Usage of the C++11 Move Semantics
    Barath, Aron
    Porkolab, Zoltan
    [J]. ACTA CYBERNETICA, 2015, 22 (01): : 5 - 20
  • [16] Introducing Parallelism by using REPARA C++11 Attributes
    Danelutto, M.
    Daniel Garcia, J.
    Miguel Sanchez, Luis
    Sotomayor, Rafael
    Torquati, M.
    [J]. 2016 24TH EUROMICRO INTERNATIONAL CONFERENCE ON PARALLEL, DISTRIBUTED, AND NETWORK-BASED PROCESSING (PDP), 2016, : 354 - 358
  • [17] Service Level Objectives via C++11 Attributes
    Griebler, Dalvan
    De Sensi, Daniele
    Vogel, Adriano
    Danelutto, Marco
    Fernandes, Luiz Gustavo
    [J]. EURO-PAR 2018: PARALLEL PROCESSING WORKSHOPS, 2019, 11339 : 745 - 756
  • [18] AutoMO: Automatic Inference of Memory Order Parameters for C/C++11
    Ou, Peizhao
    Demsky, Brian
    [J]. ACM SIGPLAN NOTICES, 2015, 50 (10) : 221 - 240
  • [19] Clarifying and Compiling C/C++ Concurrency: from C++11 to POWER
    Batty, Mark
    Memarian, Kayvan
    Owens, Scott
    Sarkar, Susmit
    Sewell, Peter
    [J]. ACM SIGPLAN NOTICES, 2012, 47 (01) : 509 - 520
  • [20] Clarifying and Compiling C/C plus plus Concurrency: from C++11 to POWER
    Batty, Mark
    Memarian, Kayvan
    Owens, Scott
    Sarkar, Susmit
    Sewell, Peter
    [J]. POPL 12: PROCEEDINGS OF THE 39TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, 2012, : 509 - 520