programming library
Recently Published Documents


TOTAL DOCUMENTS

87
(FIVE YEARS 6)

H-INDEX

14
(FIVE YEARS 0)

Author(s):  
Ying Cui ◽  
Ling Liang ◽  
Defeng Sun ◽  
Kim-Chuan Toh

The doubly nonnegative (DNN) cone, being the set of all positive semidefinite matrices whose elements are nonnegative, is a popular approximation of the computationally intractable completely positive cone. The major difficulty for implementing a Newton-type method to compute the projection of a given large-scale matrix onto the DNN cone lies in the possible failure of the constraint nondegeneracy, a generalization of the linear independence constraint qualification for nonlinear programming. Such a failure results in the singularity of the Jacobian of the nonsmooth equation representing the Karush–Kuhn–Tucker optimality condition that prevents the semismooth Newton–conjugate gradient method from solving it with a desirable convergence rate. In this paper, we overcome the aforementioned difficulty by solving a sequence of better conditioned nonsmooth equations generated by the augmented Lagrangian method (ALM) instead of solving one aforementioned singular equation. By leveraging the metric subregularity of the normal cone associated with the positive semidefinite cone, we derive sufficient conditions to ensure the dual quadratic growth condition of the underlying problem, which further leads to the asymptotically superlinear convergence of the proposed ALM. Numerical results on difficult randomly generated instances and from the semidefinite programming library are presented to demonstrate the efficiency of the algorithm for computing the DNN projection to a very high accuracy.


2021 ◽  
Author(s):  
Gregory E. Tucker ◽  
Eric W. H. Hutton ◽  
Mark D. Piper ◽  
Benjamin Campforts ◽  
Tian Gan ◽  
...  

Abstract. Computational modelling occupies a unique niche in Earth and environmental sciences. Models serve not just as scientific technology and infrastructure, but also as digital containers of the scientific community's understanding of the natural world. As this understanding improves, so too must the associated software. This dual nature–models as both infrastructure and hypotheses–means that modelling software must be designed to evolve continually as geoscientific knowledge itself evolves. Here we describe design principles, protocols, and tools developed by the Community Surface Dynamics Modeling System (CSDMS) to promote a flexible, interoperable, and ever-improving research software ecosystem. These include a community repository for model sharing and metadata, interface and ontology standards for model interoperability, language bridging tools, a modular programming library for model construction, modular software components for data access, and a Python-based execution and model-coupling framework. Methods of community support and engagement that help create a community-centered software ecosystem are also discussed.


2021 ◽  
Vol 27 (5) ◽  
pp. 275-280
Author(s):  
N. M. Kulyashova ◽  

The article is devoted to the problem of recognizing mail addresses from an arbitrary format string. The purpose of the research is a developing software for automatic mail address recognition in two forms: as a library and as a web server. As an approach to development, object-oriented programming paradigm was used. Preference is given to the C# programming language version 8.0 and ASP.NET Core 3.1 and Entity Framework Core 3.1. Address recognition software has been developed. It can be used as a programming library and as a separate web server with open HTTP REST API. The paper substantiates the need to create software for automating the recognition of address structures from a string of arbitrary format. According to the rules for the contruction of addresses, their basic patterns and nuances are analyzed. During development, fundamentally new mail address recognition algorithms were invented in the C# programming language.


2021 ◽  
Vol 40 (2) ◽  
pp. 73-75
Author(s):  
Kyle Chard ◽  
Yadu Babuji ◽  
Anna Woodard ◽  
Ben Clifford ◽  
Zhuozhao Li ◽  
...  

Parsl is a parallel programming library for Python that aims to make it easy to specify parallelism in programs and to realize that parallelism on arbitrary parallel and distributed computing systems. Parsl relies on developers annotating Python functions-wrapping either Python or external applications-to indicate that these functions may be executed concurrently. Developers can then link together functions via the exchange of data. Parsl establishes a dynamic dependency graph and sends tasks for execution on connected resources when dependencies are resolved. Parsl's runtime system enables different compute resources to be used, from laptops to supercomputers, without modification to the Parsl program.


Author(s):  
Ambros Gleixner ◽  
Gregor Hendel ◽  
Gerald Gamrath ◽  
Tobias Achterberg ◽  
Michael Bastubbe ◽  
...  

AbstractWe report on the selection process leading to the sixth version of the Mixed Integer Programming Library, MIPLIB 2017. Selected from an initial pool of 5721 instances, the new MIPLIB 2017 collection consists of 1065 instances. A subset of 240 instances was specially selected for benchmarking solver performance. For the first time, these sets were compiled using a data-driven selection process supported by the solution of a sequence of mixed integer optimization problems, which encode requirements on diversity and balancedness with respect to instance features and performance data.


2021 ◽  
Vol 33 (5) ◽  
pp. 167-180
Author(s):  
Mikhail Mikhailovich Krasnov ◽  
Olga Borisovna Feodoritova

Modern graphics accelerators (GPUs) can significantly speed up the execution of numerical tasks. However, porting programs to graphics accelerators is not an easy task. Sometimes the transfer of programs to such accelerators is carried out by almost completely rewriting them (for example, when using the OpenCL technology). This raises the daunting task of maintaining two independent source codes. However, CUDA graphics accelerators, thanks to technology developed by NVIDIA, allow you to have a single source code for both conventional processors (CPUs) and CUDA. The machine code generated when compiling this single text depends on which compiler it is compiled with (the usual one, such as gcc, icc and msvc, or the compiler for CUDA, nvcc). However, in this single source code, you need to somehow tell the compiler which parts of this code to parallelize on shared memory. For the CPU, this is usually done using OpenMP and special pragmas to the compiler. For CUDA, parallelization is done in a completely different way. The use of the functional programming library developed by the authors allows you to hide the use of one or another parallelization mechanism on shared memory within the library and make the user source code completely independent of the computing device used (CPU or CUDA). This article shows how this can be done.


Nature ◽  
2020 ◽  
Vol 585 (7825) ◽  
pp. 357-362 ◽  
Author(s):  
Charles R. Harris ◽  
K. Jarrod Millman ◽  
Stéfan J. van der Walt ◽  
Ralf Gommers ◽  
Pauli Virtanen ◽  
...  

AbstractArray programming provides a powerful, compact and expressive syntax for accessing, manipulating and operating on data in vectors, matrices and higher-dimensional arrays. NumPy is the primary array programming library for the Python language. It has an essential role in research analysis pipelines in fields as diverse as physics, chemistry, astronomy, geoscience, biology, psychology, materials science, engineering, finance and economics. For example, in astronomy, NumPy was an important part of the software stack used in the discovery of gravitational waves1 and in the first imaging of a black hole2. Here we review how a few fundamental array concepts lead to a simple and powerful programming paradigm for organizing, exploring and analysing scientific data. NumPy is the foundation upon which the scientific Python ecosystem is constructed. It is so pervasive that several projects, targeting audiences with specialized needs, have developed their own NumPy-like interfaces and array objects. Owing to its central position in the ecosystem, NumPy increasingly acts as an interoperability layer between such array computation libraries and, together with its application programming interface (API), provides a flexible framework to support the next decade of scientific and industrial analysis.


2020 ◽  
Vol 32 (3) ◽  
pp. 822-834 ◽  
Author(s):  
Egon Balas ◽  
Thiago Serra

In this paper, we present a method to determine if a lift-and-project cut for a mixed-integer linear program is irregular, in which case the cut is not equivalent to any intersection cut from the bases of the linear relaxation. This is an important question due to the intense research activity for the past decade on cuts from multiple rows of simplex tableau as well as on lift-and-project cuts from nonsplit disjunctions. Although it has been known for a while that lift-and-project cuts from split disjunctions are always equivalent to intersection cuts and consequently to such multirow cuts, it has been recently shown that there is a necessary and sufficient condition in the case of arbitrary disjunctions: a lift-and-project cut is regular if, and only if, it corresponds to a regular basic solution of the Cut Generating Linear Program (CGLP). This paper has four contributions. First, we state a result that simplifies the verification of regularity for basic CGLP solutions. Second, we provide a mixed-integer formulation that checks whether there is a regular CGLP solution for a given cut that is regular in a broader sense, which also encompasses irregular cuts that are implied by the regular cut closure. Third, we describe a numerical procedure based on such formulation that identifies irregular lift-and-project cuts. Finally, we use this method to evaluate how often lift-and-project cuts from simple t-branch split disjunctions are irregular, and thus not equivalent to multirow cuts, on 74 instances of the Mixed Integer Programming Library (MIPLIB) benchmarks.


Sign in / Sign up

Export Citation Format

Share Document