Article

The CMake build manager

Authors:
To read the full-text of this research, you can request a copy directly from the authors.

Abstract

A study is performed on the CMake build manager. CMake is an open-source, cross-platform C/C++ build manager that lets the user specify build parameters in a text file. It also includes integrated support for regression testing. It provides the ability to determine the byte order and other hardware-specific characteristics, when developing the cross-platform software.

No full-text available

Request Full-text Paper PDF

To read the full-text of this research,
you can request a copy directly from the authors.

... Geant4 (Geometry and Tracking) is a toolkit for the simulation of the passage of particles through matter, developed by CERN [29]. Geant4-DNA, an extension of the program to model biological damage induced by ionizing particles at the DNA scale using MC simulation, is written in C++ code working on the CMake platform [29,30]. The toolkit has the capability of making the geometry of the system, materials involved, tracking of particles through materials, the response of detector components, visual of the detector and particle trajectories, and other relevant aspects. ...
... It was positioned 200 nm away from the nanoparticle. The proton flux was irradiated as parallel beams onto the gold nanoparticle with different distances (30,80 and 130 nm) from the DNA molecule. Different nanoparticle radii of 15, 25 and 50 nm and different proton beam energies of 0.5, 5, 15 and 25 MeV were used. ...
... c show the variations of DER vs. proton beam energy on the gold nanoparticle size (radius = 15, 25 and 50 nm) and distance between the nanoparticle and DNA(30, 80 and 130 nm). The uncertainty of the DER is less than 2% in the calculation. ...
Article
Full-text available
Heavy atom nanoparticles, such as gold nanoparticles, are proven effective radiosensitizers in radiotherapy to enhance the dose delivery for cancer treatment. This study investigated the effectiveness of cancer cell killing, involving gold nanoparticle in proton radiation, by changing the nanoparticle size, proton beam energy, and distance between the nanoparticle and DNA. Monte Carlo (MC) simulation (Geant4-DNA code) was used to determine the dose enhancement in terms of dose enhancement ratio (DER), when a gold nanoparticle is present with the DNA. With varying nanoparticle size (radius = 15–50 nm), distance between the gold nanoparticle and DNA (30–130 nm), as well as proton beam energy (0.5–25 MeV) based on the simulation model, our results showed that the DER value increases with a decrease of distance between the gold nanoparticle and DNA and a decrease of proton beam energy. The maximum DER (1.83) is achieved with a 25 nm-radius gold nanoparticle, irradiated by a 0.5 MeV proton beam and 30 nm away from the DNA.
... We extend these memory resources to cover heterogeneous memory, and demonstrate how they can be applied to heterogeneous programming to provide a more comfortable and productive experience to C++ programmers. The project also provides the CMake [8] build infrastructure for making use of the supported heterogeneous programming languages on all platforms that those languages themselves support. ...
Article
Full-text available
Programmers using the C++ programming language are increasingly taught to manage memory implicitly through containers provided by the C++ standard library. However, heterogeneous programming platforms often require explicit allocation and deallocation of memory. This discrepancy in memory management strategies can be daunting and problematic for C++ developers who are not already familiar with heterogeneous programming. The C++17 standard introduces the concept of memory resources , which allow the user to control how standard library containers allocate memory; we believe that this addition to the C++17 standard is a powerful tool towards the unification of memory management for heterogeneous systems with best-practice C++ development. In this paper, we present vecmem , a library of memory resources which allows efficient and user-friendly allocation of memory on CUDA, HIP, and SYCL devices through standard C++ containers. We investigate the design and use cases of such a library, the potential performance gains over naive memory allocation, and the limitations of this memory allocation model.
... -Run on the Linux system; -Using the latest intel OneAPI [30] compiler and compiling with CMake [31]; ...
Article
A fully self-consistent second order accuracy model for coupling a generalized external circuit and a one-dimensional bounded electrode-driven plasma was proposed in this paper. The plasma was embedded in the circuit as a non-linear element with a potential difference. Based on Kirchhoff's voltage law and the definition of current, the problem of solving the generalized external circuit was transformed into an initial value problem of a set of first-order ordinary differential equations which can be discretized numerically by the second-order backward differential formula. The charge conservation equation at the electrode plate was coupled to the above equation, and the voltage, current, and surface charge density at the next moment were solved by a differential equation solver. Dirichlet boundary conditions of Poisson's equation were obtained through the surface charge density σ0 of the generalized external circuit equation and the plasma density ρ of the Particle-in-Cell(PIC) model. The spatial distribution of plasma potential was solved by using the second-order central difference scheme. The obtained potential at the electrode plate can be used as the Robin boundary condition of the system of generalized external circuit equations. In this model, the loose coupling between the generalized external circuit and plasma was realized by the boundary condition, and the system was fully self-consistent based on the charge conservation law and energy conservation law. We simulated the capacitively coupled plasmas (CCP) under different external circuits as the example and verified the performance of the model. This model can be used to study the influence of different external circuit structures and parameters on plasma discharge, and can be used for any plasma sources driven by electrodes, like CCP, some vacuum electronic devices, and Z-Pinches.
... require programming another language like Python or are very much Make like build systems. These include makepp (Pfeiffer and Holt 2013), CMake (Hoffman and Martin 2003) and Remake (http://bashdb.sourceforge.net/remake/). Superficially, while these systems often have strong advocates and in time one of these or another alternative may supersede GNU Make, these methods would appear to be as complicated as standard GNU Make if not more so. ...
Article
Full-text available
Data analysis projects invariably involve a series of steps such as reading, cleaning, summarizing and plotting data, statistical analysis and reporting. To facilitate reproducible research, rather than employing a relatively ad-hoc point-and-click cut-and-paste approach, we typically break down these tasks into manageable chunks by employing separate files of statistical, programming or text processing syntax for each step including the final report. Real world data analysis often requires an iterative process because many of these steps may need to be repeated any number of times. Manually repeating these steps is problematic in that some necessary steps may be left out or some reported results may not be for the most recent data set or syntax. GNU Make may be used to automate the mundane task of regenerating output given dependencies between syntax and data files. In addition to facilitating the management of and documenting the workflow of a complex data analysis project, such automation can help minimize errors and make the project more reproducible. It is relatively simple to construct Makefiles for small data analysis projects. As projects increase in size, difficulties arise because GNU Make does not have inbuilt rules for statistical and related software. Without such rules, Makefiles can become unwieldy and error-prone. This article addresses these issues by providing GNU Make pattern rules for R, Sweave, rmarkdown, SAS, Stata, Perl and Python to streamline management of data analysis and reporting projects. Rules are used by adding a single line to project Makefiles. Additional flexibility is incorporated for modifying standard program options. An overall strategy is outlined for Makefile construction and illustrated via simple and complex examples.
... On new hardware or on systems without a large number of users, only a limited amount of software will have been or will be ported to the system. On a system such as Kabuki, the build system Cmake [16,22] requires significant effort to port. Cmake is an essential component of gearshifft, hence rather than using Cmake and gearshifft, it was easier to re-write the one dimensional FFT speed test in FFTE 6.0 [32][33][34] to produce the results in Fig. 2. Benchmarks which do not allow for flexibility in re-writing code will stifle innovation by making it difficult to compare new approaches with established ones. ...
Conference Paper
Full-text available
An overview of concerns observed in allowing for reproducibility in parallel applications that heavily depend on the three dimensional distributed memory fast Fourier transform are summarized. Suggestions for reproducibility categories for benchmark results are given.
... Also, the command line version provides SBML import/export utilities. The source code of the standalone command line version of the tool is released under the General Public License version 3 (GPLv3) and can be compiled using CMake [Mar03] under Linux and MacOS platforms. In addition, the Boost [Boo12] library is required. ...
... C1111-compatible compiler (tested with the GNU compiler suite [72] in versions 4.4 (partial support sufficient) and 5.4) CMake [73] (version 2.4.8 or above) Eigen [74] (version 3) NumPy [75] (version 1.9 or above) Python 2 (version 2.7.6 or above) or 3 (version 3.4 or above) [76] SWIG [70] (version 3.0 or above) ...
Article
Not only the molecular structure but also the presence or absence of aggregates determines many properties of organic materials. Theoretical investigation of such aggregates requires the prediction of a suitable set of diverse structures. Here, we present the open-source program EnergyScan for the unbiased prediction of geometrically diverse sets of small aggregates. Its bottom-up approach is complementary to existing ones by performing a detailed scan of an aggregate's potential energy surface, from which diverse local energy minima are selected. We crossvalidate this approach by predicting both literature-known and heretofore unreported geometries of the urea dimer. We also predict a diverse set of dimers of the less intensely studied case of porphin, which we investigate further using quantum chemistry. For several dimers, we find strong deviations from a reference absorption spectrum, which we explain using computed transition densities. This proof of principle clearly shows that EnergyScan successfully predicts aggregates exhibiting large structural and spectral diversity.
... BamTools version 2.4.0 (Barnett et al. 2011(Barnett et al. , 2015 requiring CMake version 3.2.3 (Hoffman & Martin 2003;Kitware 2015), and on the 150 nt paired-end reads from the Nextera700nt dataset to estimate the genome size. Preqc estimated the genome size by sampling 20,000 reads and counting the frequency of k-mers of length 31 nt while applying a correction for sequencing errors. ...
... The installation procedure is fully documented in The VTK User's Guide [4]. The most time was spent learning how to use the CMake [33, 34] build utility from Kitware. CMake is a free tool whose goal is to provide a cross-platform build process. ...
Article
When starting a new computer graphics or visualization software project, students, researchers, and businesses alike must decide whether or not to start from scratch or with third-party software. Since computer graphics and visualization applications are typically quite large, developers often build upon existing software libraries in order to take advantage of the tens of thousands of hours worth of development and testing already invested. Thus, developers and managers must face the decision of which library to build on. We present a side-by-side comparison and evaluation of four popular, state-of-the-art visualization and computer graphics libraries, namely the Visualization Toolkit (VTK), Open Inventor, Coin3D, and Hoops 3D. The evaluation is based on the feature set, ease of installation, development of a benchmark application, documentation, and technical support for each package. The results of our comparison and evaluation are described and recommendations are given as for whom the libraries are best suited. The VTK prevails on top in many of the aspects we compared and evaluated. Copyright © 2007 John Wiley & Sons, Ltd.
Conference Paper
The ESP32 is a popular microcontroller from Espressif that can be used in many embedded applications. Robotic joints, smart car chargers, beer vat agitators and automated bread mixers are a few examples where this system-on-a-chip excels. It is cheap to buy and has a number of vendors providing low-cost development board kits that come with the microcontroller and many external connection points with peripherals. There is a large software ecosystem for the ESP32. Espressif maintains an SDK containing many C-language sample projects providing a starting point for a huge variety of software services and I/O needs. Third party projects provide additional sample code as well as support for other programming languages. For example, MicroPython is a mature project with sample code and officially supported by Espressif. The SDK provides tools to not just build an application but also merge a flash image, flash to the microcontroller and monitor the output. Is it possible to build the ESP32 load and emulate on another host OS? This paper qualitatively explores the QEMU emulator and its ability to emulate the ethernet interface for the guest OS. Additionally, we look into the concept of containerizing the entire emulator and ESP32 load package such that a microcontroller flash image can successfully run with a one-step deployment of a Docker container.
Article
Recent progress in the application of machine learning (ML) / artificial intelligence (AI) algorithms to improve EFIT equilibrium reconstruction for fusion data analysis applications is presented. A device-independent portable core equilibrium solver capable of computing or reconstructing equilibrium for different tokamaks has been created to facilitate adaptation of ML/AI algorithms. A large EFIT database comprising of DIII-D magnetic, Motional-Stark Effect (MSE), and kinetic reconstruction data has been generated for developments of EFIT Model-Order-Reduction (MOR) surrogate models to reconstruct approximate equilibrium solutions. A neural-network (NN) MOR surrogate model has been successfully trained and tested using the magnetically reconstructed datasets with encouraging results. Other progress includes developments of a Gaussian-Process (GP) Bayesian framework that can adapt its many hyperparameters to improve processing of experimental input data and a 3D perturbed equilibrium database from toroidal full magnetohydrodynamic linear response modeling using the MARS-F code for developments of 3D-MOR surrogate models.
ResearchGate has not been able to resolve any references for this publication.