Contacts

Free math packages for gnu. Programs of mathematical modeling. Functions and Variables

Application software packages

Application Libraries

Auxiliary software

Compilers

MPI

Performance Analysis Tools

Libraries

Using the GUI on a Cluster

AmberTools package

AmberTools is a suite of programs for biomolecular modeling and analysis. Commercial package. Available version of AmberTools12.

The program is installed on the supercomputer "Lomonosov"

FireFly Package (PC-GAMESS)

To work with a package REQUIRED license. Even if you already have it, contact the author of the program (A. Granovsky) and ask for permission to work on the supercomputer. After obtaining permission, you will have access to the program.

FlowVision Package

The program is installed on the Lomonosov supercomputer.

Gmsh package

Gmsh is a free 3D finite element mesh generator with built-in pre- and post-processing.

The program is installed on the Lomonosov and Lomonosov-2 supercomputers.

Current software version

to Lomonosov - 3.0.5,

on Lomonosov-2 - 3.0.6, 3.0.7

The path in the file system where the package is installed

Lomonosov 2

The path in the file system where the package is installed

Supercomputer "Lomonosov-2" (Version 2015.1.29)

The results of testing the performance of the NAMD package on the Lomonosov supercomputer and comparison with Cray XE6 available here

The program is installed on the Lomonosov and Lomonosov-2 supercomputers.

netCFD 4.1.3 package

NetCDF (network Common Data Form) is a set of interfaces for accessing scientific data arrays and freely distributed libraries for C, Fortran, C++, Java and other languages. The netCDF libraries support a machine-independent representation of data. Project site: https://www.unidata.ucar.edu/software/netcdf/

You can configure the environment for working with the package with the following commands:
module load intel; module load impi

The program is installed on the Lomonosov supercomputer.

Octave package

A free system for mathematical calculations using a high-level language compatible with MATLAB.

The program is installed on the Lomonosov supercomputer.

The path in the file system where the package is installed

/opt/software/octave-4.0.1/

OpenFOAM package

At SC "Lomonosov" the package is assembled in several versions, but we recommend the latest version installed in the directory /opt/software/OpenFOAM-2.3.1. You must first load the openfoam/2.3.1 module. Before using the packages, you must run the command source /opt/software/OpenFOAM-2.3.1/etc/bashrc .

The package is built with IntelMPI, so use a wrapper script when starting impi.

The program is installed on the Lomonosov and Lomonosov-2 supercomputers.

The path in the file system where the package is installed

The program is installed on the Lomonosov supercomputer.

Schrodinger package

The Schrodinger software package is a molecular modeling and design software using both ligand and structural methods.

The program is installed on the Lomonosov-2 supercomputer.

Software name and version

Schrödinger's Release 2018-1, Schrödinger's Release 2017-4

Commercial package has a trial version

Contacts for technical support (software manufacturer)

You can contact technical support through the form on the site, also on this page there is a “knowledge base in which you can try to find the answer to your question”

The path in the file system where the package is installed

/opt/software/schrodinger2018-1

/opt/software/schrodinger2017-4

Description of the procedure for installing and configuring the package, indicating specific
parameters used on the system

  1. Unpack the downloaded distribution:

tar -xvf Schrodinger_Internet_Download.tar

  1. Change to the unpacked directory:

cd Schrodinger_Internet_Download

  1. Run installation script:
  1. Enter the information requested by the installation script

Description of the package testing procedure

This package provides a diagnostic procedure, for diagnostics, run the diagnostics utility, which starts the checks and reports the results

/opt/software/schrodinger2018-1/installation_check

/opt/software/schrodinger2017-4/diagnostics

Package SPILADY

SPILADY is a computer program written at the Culham Center for Fusion Energy, United Kingdom Atomic Energy Authority, Oxfordshire OX14 3DB, UK, from March 2014 to July 2015. This is a spin-lattice dynamics code intended to be entered as an introductory computer simulation tool for students, scientists, researchers, and others familiar with molecular dynamics.

Description of the installation procedure.

The program is installed on the Lomonosov and Lomonosov-2 supercomputers.

Turbomole package

Package for solving problems of quantum chemistry ab initio. - home page of the package. Information on working with the package on the Lomonosov cluster - .

The program is installed on the Lomonosov supercomputer.

To use the package, download the vasp module.

Run example: sbatch -p test -N 3 --ntasks-per-node 8 impi vasp_std

Program installation path

WRF package

WRF - Weather Research & Forecasting Model - m The weather research and forecasting model is a next-generation mesoscale numerical weather forecasting system for both atmospheric research and operational forecasting.

The program is installed on the Lomonosov supercomputer.

Installed in user directory

Contacts for technical support (software manufacturer) .

Anaconda

The Anaconda2 package allows you to download and install different versions of Python and various APIs for Python, and all APIs are already pre-configured and tested, which greatly simplifies the tasks of developing and training neural networks and other scientific projects.

The program is installed on the Lomonosov and Lomonosov-2 supercomputers.

In order to use the Anaconda 2 package in an ssh session on Lom-2, you need to run the command:

module load anaconda2/2.5.0

This command loads the Python 2.7 anaconda environment into your session environment, this environment also has a number of pre-installed Python APIs, you can see the list of APIs with the command:

This environment can only be edited by the cluster administrator.

Jupyter Notebook

Jupyter Notebook is an open source web application that allows you to store code, images, comments, formulas, and graphs together. Includes: data cleaning and transformation, numerical modeling, statistical modeling, data visualization, machine learning and more.

For use on Lomonosov-2, you need to set up forwarding X

cafe

A deep learning framework developed by Yangqing Jia in preparation for his thesis at the University of Berkeley. cafe is open source software distributed under the BSD license. Written in C++ and supports a Python interface. Available caffe version 1.0.0

/opt/ccoe/caffe

Technical and other questions can be asked

The program is installed on the Lomonosov-2 supercomputer.

Keras

Keras is a high-level neural network API written in Python and able to run on top of TensorFlow, CNTK or Theano. It was designed with a focus on being able to experiment quickly.

Keras allows:

Prototyping is easy and fast (due to convenience, modularity and extensibility).
-Supports both ultra-precise networks and repetitive networks, as well as combinations of the two.
-Supports operation on the processor (CPU) and graphics processing unit (GPU).

The program is installed on the Lomonosov-2 supercomputer.

MATLAB_Runtime

MATLAB Runtime is a standalone set of shared libraries that allows you to run compiled MATLAB applications or components. The package is distributed under the MATLAB RUNTIME LICENSE if you run compiled Matlab applications using this package.

Current software version

The path in the file system where the package is installed

The program is installed on the Lomonosov supercomputer.

The program is installed on the Lomonosov-2 supercomputer.

Torchvision

TorchVision is an image manipulation library. It contains utility functions for image processing so that they can be used in neural networks. It also hosts popular image datasets, model architectures, and common image transformations for computer vision.

The program is installed on the Lomonosov-2 supercomputer.

GNU compilers

a set of compilers for various programming languages ​​developed by the GNU project. GCC is free software, distributed by the Free Software Foundation (FSF) under the terms of the GNU GPL and GNU LGPL, and is a key component of the GNU toolchain. It is used as a standard compiler for free UNIX-like operating systems.

The program is installed on the Lomonosov supercomputer.

Intel compilers (languages ​​C/C++, Fortran77/Fortran90)

support various levels of optimization for 32-bit and 64-bit applications in one package, and OpenMP parallel programming technology, which allows you to create efficient programs for modern multi-core processors. The compilers come with a symbolic debugger Intel Debugger, which can work in compatibility modes with gdb or dbx and integrates with such graphical debugging shells as ddd, Eclipse, Allinea. The debugger supports both multi-threaded OpenMP applications and those written using the native threads interface. Spawned threads automatically fall under the control of the debugger, and most of its commands can be applied to either one or all threads at the same time.

Current version: 12.0.

The program is installed on the Lomonosov and Lomonosov-2 supercomputers.

Intel VTune Amplifier XE 2011

The latest Inte VTune™ Amplifier XE performance profiler is based on the popular Intel Performance Analyzer. It includes all the features of the Intel Parallel Amplifier plus a number of additional features specifically designed for developers who need a more comprehensive approach.

The program is installed on the Lomonosov and Lomonosov-2 supercomputers.

ACML library

AMD Core Math Library(AMD Core Math Library) is a library released by AMD. This library implements support for useful math functions optimized for AMD processors, but also works well for Intel processors.

The program is installed on the Lomonosov supercomputer.

Intel Composer XE

Cluster programming tools are combined into Intel Composer XE package. This includes the Intel MPI Library, the Intel Cluster MKL Optimized Parallel Math Library, and the Intel Trace Analyzer & Collector, a dedicated tool for building efficient, scalable parallel programs.

The program is installed on the Lomonosov supercomputer.

Current version: 2015.0.090.
Website: https://software.intel.com/en-us/intel-devtools-by-os/linux

Intel MPI Library

The Intel® MPI Library improves application performance in Intel® architecture-based clusters by implementing the high-performance MPI-2 specification across multiple infrastructures. Using this library ensures maximum end user performance even when changing or updating interconnects. No major modifications to the software or operating environment are required. Use this high performance message passing interface library to develop programs that can run on multiple cluster communication connections selected by the user during application execution. Intel also provides a free runtime kit for products developed with the Intel MPI library. Achieve best-in-class HPC performance for corporations, divisions, departments and workgroups

The program is installed on the Lomonosov and Lomonosov-2 supercomputers.

Current version: 5.0.1 ("Lomonosov")
Website: https://software.intel.com/en-us/mpi-library/documentation/get-started

PGI compiler

PGI Workstation- set of compilers and tools for scientific and engineering purposes. PGI Workstation is available in Fortran and C/C++ editions. Includes Fortran 2003, FORTRAN 77 compilers, HPF for parallelization and software optimization, OpenMP C++ and ANSI C compilers. C++ compiler follows the ANSI standard and supports cfront versions 2 and 3. All C++ functions are compatible with Fortran and C functions PGI Workstation includes a parallel PGDBG OpenMP and MPI debugger and a PGPROF profile optimization component that can debug and profile up to eight local MPI processes.It also contains a precompiled MPICH message passing library. There is support for CUDA Fortran, ACML, OpenACC, FMA4

Current software version

The path in the file system where the package is installed

Current version: 11.2.0 ("Lomonosov")
Website: https://software.intel.com/mkl

OpenMPI

Open MPI is the successor to LAM/MPI and is supported by a consortium of partners from the fields of science, developers and manufacturers. OpenMPI is an open free implementation of MPI-2 technology. It can be used to perform parallel calculations on computing clusters.

  • full MPI-2 support;
  • work in a heterogeneous environment;
  • Support for work under the control of the queue system;
  • Work in 32- and 64-bit environments;
  • High performance on all platforms;
  • High tolerance;
  • Good scalability;

The program is installed on the Lomonosov and Lomonosov-2 supercomputers.

PathScale Compiler Suite

compiler for a highly optimized architecture. It is an evolution of the MIPSPro compiler created by the company for the MIPS R10000 microprocessors. Developed by the American company PathScale

The program is installed on the Lomonosov supercomputer.

Python

Python is a high-level programming language focused on improving developer productivity and code readability. The free package is distributed under the Python Software Foundation License. To install the required version of Python on Lomonosov-2, the anaconda package is used; it allows you to create a Python environment and install the API for it.

The program is installed on the Lomonosov and Lomonosov-2 supercomputers.

total view

A proprietary debugger for C++ and Fortran that runs on UNIX-compatible operating systems and Mac OS X, on multiple platforms. It allows you to control the threads of execution (threads, thread), show the data of one or all threads, can synchronize threads through breakpoints. The debugger also integrates tools for finding memory leaks (later it also became available as a separate MemoryScape program) and for debugging the heap (heap-based memory allocation). TotalView includes the ability to inspect changes while debugging. It supports remote debugging as well as parallel programs using MPI, OpenMP, UPC, GlobalArrays. Installed on a significant number of top500 supercomputers. Debugs programs written in C, C++, Fortran.

To use, preload the module:

module load total view

The program is installed on the Lomonosov supercomputer.

Allinea DDT

The Allinea DDT debugger from Allinea Software is designed specifically for petaflop parallel systems, that is, those with hundreds of thousands of processor cores. The new version is faster and more efficient. The DDT architecture is such that the response time is proportional to the logarithm of the number of processor cores. Tested and improved on real giant systems. One of the testing grounds is Cray XT5 supercomputers. Among the customers is the US Department of Energy.

The program is installed on the Lomonosov supercomputer.

ScaLAPACK

ScaLAPACK (Scalable Linear Algebra PACKage) is an open source library that includes a subset of LAPACK procedures redesigned for use on MPP computers, including: solving systems of linear equations, matrix inversion, orthogonal transformations, finding eigenvalues, etc. Currently At the time, it was written in Single-Program-Multiple-Data style using explicit message passing for interprocessor communication.

ScaLAPACK is developed using PBLAS and BLACS and is intended for computing on any computer or cluster that supports MPI or PVM. An alternative to ScaLAPACK is the PLAPACK feature pack.

Version: 20120718

The program is installed on the Lomonosov supercomputer.

ATLAS

ATLAS (Automatically Tuned Linear Algebra Software) is a library that allows you to automatically generate and optimize numerical software for processors with multilevel memory organization and pipelined functional units. Based on BLAS level 3 (Level 3). ATLAS takes some time to learn the main architecture parameters of the target computer, and then derives the "optimal" code based on these parameters.

The library is developed by the Argonne National Laboratory/MCS division. Distributed for free.

The program is installed on the Lomonosov supercomputer.

BLAS

BLAS (English Basic Linear Algebra Subprograms - basic linear algebra subroutines) is a de facto standard for the application programming interface for creating libraries that perform basic linear algebra operations, such as vector and matrix multiplication. It was first published in 1979 and has been used to create larger packages such as LAPACK. Used extensively in high performance computing, highly optimized implementations of the BLAS interface have been developed by hardware manufacturers such as Intel as well as others (eg ATLAS - Portable Self-Optimizing BLAS). The LINPACK Benchmark is based heavily on DGEMM, a subroutine of BLAS.

LAPACK

LAPACK (Linear Algebra PACKage) is an open source library containing basic linear algebra solvers. Written in Fortran using another BLAS library.

The program is installed on the Lomonosov supercomputer.

FFTW

The FFTW library is a set of C and Fortran modules for computing the Fast Fourier Transform (FFT). FFTW allows you to work with both real and complex numbers, with an arbitrary size of input data, i.e. with data length not necessarily a multiple of 2n. The library also includes FFT parallel processing modules that allow it to be used on multiprocessor machines with shared and distributed memory.

The program is installed on the Lomonosov supercomputer.

Forwarding X

Sometimes you need to work with GUI utilities on the computing cluster. To do this, you need two programs Putty and Xming. Putty acts as an SSH client and sends data to the xserver via ssh. Xming is a ported X Window Server for Windows. The point is that Putty transmits X-terminal data via SSH, and the local X server renders the picture, in our case Xming is the X server.

graduate work

1.1 Modern math packages

Modern mathematical packages can be used both as a regular calculator, and as a means to simplify expressions when solving any problems, and as a graphics or even sound generator. Means of interacting with the Internet have also become standard, and the generation of HTML pages is now performed right in the process of computing. Now you can solve a problem and at the same time publish the progress of its solution to your colleagues on your home page.

We can talk about mathematical modeling programs and possible areas of their application for a very long time, but we will limit ourselves to a brief overview of the leading programs, pointing out their common features and differences. Currently, almost all modern CAE-programs (Computer Aided Engineering, mathematical modeling packages) have built-in functions of symbolic calculations.

So what do these programs do and how do they help mathematicians? With the help of the described software, you can save a lot of time and avoid many errors in calculations. Note that the range of tasks solved by such systems is very wide:

Carrying out mathematical research requiring calculations and analytical calculations;

Development and analysis of algorithms;

Mathematical modeling and computer experiment;

Data analysis and processing;

Visualization, scientific and engineering graphics;

Development of graphic and calculation applications.

The most famous and adapted for mathematical symbolic calculations are the following mathematical packages:

The Mathematica package shown in Figure 1 is widely used in calculations in modern scientific research and has become widely known in the scientific and educational environment.

Despite its focus on serious mathematical calculations, Mathematica class systems are easy to learn and can be used by a fairly wide category of users - university students and teachers, engineers, graduate students, scientists, and even students of mathematical classes in general education and special schools. At the same time, the broadest functions of the program do not overload its interface and do not slow down calculations. Mathematica consistently demonstrates the high speed of symbolic conversions and numerical calculations. Of all the systems under consideration, Mathematica is the most complete and versatile, but each program has its own advantages and disadvantages.

Figure 1. Mathematica

Thus, Mathematica is, on the one hand, a typical programming system based on one of the most powerful high-level problem-oriented functional programming languages, designed to solve various problems (including mathematical ones), and on the other hand, an interactive system for solving most mathematical problems in an interactive mode without traditional programming. Mathematica, as a programming system, has all the capabilities to develop and create almost any control structures, organize I / O, work with system functions and maintain any peripheral devices, and with the help of extension packages, it becomes possible to adapt to the needs of any user.

The disadvantages of the Mathematica system include perhaps a very unusual programming language, which, however, is facilitated by a detailed help system.

The Maple program is a kind of patriarch in the family of systems of symbolic mathematics and is still one of the leaders among the universal systems of symbolic calculations. It provides the user with a convenient intellectual environment for mathematical research of any level and is especially popular in the scientific community. Note that the symbolic analyzer of the Maple program is the most powerful part of this software, so it was borrowed and included in a number of other CAE packages, such as MathCad and MATLAB, as well as in Scientific WorkPlace and Math Office for Word packages for preparing scientific publications. .

Maple provides a convenient environment for computer experiments, during which various approaches to the problem are tried, particular solutions are analyzed, and, if necessary, programming fragments that require special speed are selected. The package allows you to create integrated environments with the participation of other systems and high-level universal programming languages. When the calculations are made and it is required to formalize the results, then you can use the tools of this package to visualize the data and prepare illustrations for publication. To complete the work, it remains to prepare printed material in the Maple environment, and then you can proceed to the next study. The work is interactive - the user enters commands and immediately sees the result of their execution on the screen (Figure 2). At the same time, the Maple package is not at all like a traditional programming environment, where a strict formalization of all variables and actions with them is required. Here, the choice of appropriate types of variables is automatically ensured and the correctness of the operations is checked, so that in the general case there is no need for a description of variables and strict formalization of the notation.

Figure 2 Maple

Maple is a well-balanced system and the undisputed leader in the possibilities of symbolic calculations for mathematics. At the same time, the original character engine is combined here with an easy-to-remember structured programming language, so that Maple can be used for both small tasks and large projects.

The disadvantages of the Maple system include only its some "thoughtfulness", and not always justified, as well as the very high cost of this program.

The MATLAB system, shown in Figure 3, belongs to the middle level of products designed for symbolic mathematics, but is designed for wide use in the field of CAE.

MATLAB is one of the oldest, carefully designed and time-tested systems for automating mathematical calculations, built on an extended representation and application of matrix operations. This is reflected in the very name of the system - MATrix LABoratory, that is, the matrix laboratory. However, the syntax of the system's programming language is thought out so carefully that this orientation is almost not felt by those users who are not directly interested in matrix calculations.

MATLAB libraries are characterized by high speed of numerical calculations. However, matrices are widely used not only in such mathematical calculations as solving problems of linear algebra and mathematical modeling, calculation of static and dynamic systems and objects. They are the basis for the automatic compilation and solution of the equations of state of dynamic objects and systems. It is the universality of the matrix calculus apparatus that significantly increases interest in the MATLAB system, which incorporates the best achievements in the field of fast solution of matrix problems. Therefore, MATLAB has long gone beyond the specialized matrix system, becoming one of the most powerful universal integrated systems of computer mathematics.

Figure 3. MATLAB

Among the shortcomings of the MATLAB system, one can note the low integration of the environment (a lot of windows with which it is better to work on two monitors), a not very intelligible help system (the volume of proprietary documentation reaches almost 5 thousand pages, which makes it difficult to see) and a specific MATLAB code editor -programs (Figure 4). Today, the MATLAB system is widely used in engineering, science and education, but still it is more suitable for data analysis and organization of calculations than for purely mathematical calculations.

Unlike the powerful and highly efficient data analysis package MATLAB, MathCad is rather a simple but advanced mathematical text editor with rich symbolic computing capabilities and an excellent interface. MathCad does not have a programming language as such, and the symbolic calculation engine is borrowed from the Maple package. But the interface of the MathCad program is very simple, and the visualization capabilities are rich. All calculations here are carried out at the level of visual recording of expressions in a commonly used mathematical form. The package has good hints, detailed documentation, a training function, a number of additional modules and decent technical support from the manufacturer. However, while the mathematical capabilities of MathCad in the field of computer algebra are much inferior to the Maple, Mathematica, MATLAB systems. However, MathCad has produced many books and tutorials. Today, this system has become the international standard for technical computing, and even many schoolchildren master and use MathCad.

Figure 4. MathCad

For a small amount of calculations, MathCad is ideal - here everything can be done very quickly and efficiently, and then format the work in the usual way (MathCad provides ample opportunities for formatting results, up to publishing on the Internet). The package has convenient data import/export capabilities. For example, you can work with Microsoft MS Excel spreadsheets right inside a MathCad document.

In general, MathCad is a very simple and convenient program that can be recommended to a wide range of users, including those who are not very knowledgeable in mathematics, and especially to those who are just learning its basics.

As cheaper, simpler, one can note such packages as UMS, Microsoft MS Excel.

Once systems of symbolic mathematics were focused exclusively on a narrow circle of professionals and worked on large computers. But with the advent of the PC, these systems were redesigned for them and brought to the level of mass serial software systems. Today, symbolic mathematics systems of various calibers coexist on the market - from the MathCad system designed for a wide range of consumers to the computer monsters Mathematica, MATLAB and Maple, which have thousands of built-in and library functions, wide possibilities for graphical visualization of calculations and advanced tools for preparing documentation.

Note that almost all of these systems work not only on personal computers equipped with popular Windows operating systems, but also under Linux, UNIX, Mac OS operating systems, as well as on PDAs.

Let's move on to the packages most commonly used in schools when conducting mathematics lessons in high school. These include: Universal Math Solver (UMS), Microsoft MS Excel.

The UMS program - "Universal Mathematical Solver" allows you to solve tasks from many sections of algebra and analysis. The knowledge of the "Universal Solver" covers almost the entire course in algebra and analysis in high school and the first courses of universities.

Unlike a number of powerful mathematical packages, UMS is available for quick learning thanks to a simple interface and deals with the proposed tasks using exclusively "school" methods, arranging all the stages of the solution as a teacher would do (Figure 5).

If you look at the practical value of Universal Math Solver more broadly, then the application will successfully serve parents who are used to monitoring their child's homework, and math teachers. The latter can use the interactive features of the program in the educational process, placing the explanation of problem solutions on the "shoulders" of the e-teacher.

Universal Math Solver comes in two editions - desktop and network. The cost of a one-year license for one installation of the first version is 3000 tenge, the price of the network edition is three times higher.

Figure 5. Universal Math Solve

Unfortunately, in school practice there is no way to use such powerful mathematical packages as Mathematica, Mathcad, MathLab, Maple due to the high cost of their licensed copies. However, MS Office applications are available in every school. The use of the mathematical shell of the office spreadsheet processor MS Excel allows solving mathematical problems of high complexity.

Information systems in economics

Since the market for office suites is one of the most massive in terms of the number of consumers, it is obvious that Microsoft had and still has competitors - companies offering alternative office products. Many large companies have their office suites...

From time to time, software vendors release fixes for their software products. As a rule, patches correct the identified problem ...

Client software

There are no major differences between service packs and patches. Typically, a service pack will include several fixes that have already been tested. Service packs are distributed less frequently than hotfixes, but more often...

USB 2.0 mezzanine adapter

Four types of packets are used for the USB bus. The marker package means...

Operating system

LynuxWorks provides LynxOS 4.0 Target Architecture Support Packages (BSPs) for a wide range of platforms such as any AT and CompactPCI boards with an Intel processor, Motorola Sand-point 750, Intel XScale IQ80310, IBM 440GP, Motorola FADS-ZU, Thales VM-PC6a/c, Force PowerCore 680 G3 & G4, Motorola CompactPCI for PPC MCP750, MCPN750...

The main stages of object-oriented design

A package is the primary way to organize model elements in the UML. Each package owns all of its elements, i.e. those elements included in it...

Application of information systems in college

The "Enterprise Information System" configuration is designed to organize work with correspondence and internal documents of the organization, as well as to automate a number of actions...

Application of application packages in economics

One of the directions for the introduction of information technologies in higher education is the use of application software in the educational process...

Development of a software product that optimizes the creation of reports on the database

1) Operating system: Microsoft Windows 7 Enterprise. Development environment: Borland C++ Builder 6. Office suites: MS Office 2010. Additional software: Mozilla Firefox 12.0, Toad for Oracle 10.6...

Development of a software system for automating information exchange between insurance medical organizations

An information package is a password-protected ZIP archive file that contains a database fragment in the form of a set of interrelated tables in the DBF III format (dBASE RUS cp866). The information packet name format is: NNNNNSSK.YMD...

The most widely used office suite in the world is Microsoft Office. According to IDC, this application is installed on more than 95% of personal computers...

Economic efficiency of the introduction of information technologies (on the example of JSC "Sberbank")

In order to send the documents created by you to the Bank, you need to form them into a package. To do this, you need to click the "Packages" button. Your attention will be given a table with the packages sent by you to the bank...

Free mathematics

Alexander Bikmeev understands how free computer mathematics is and how free software is mathematical.

Any science, from physics to philology, uses the achievements of mathematics. In this regard, non-mathematicians need tools that would allow them to set problems in mathematical form and obtain solutions in the form of formulas or a set of values, that is, they need computer mathematics systems that can take on the work of solving mathematical problems using various methods.

Unfortunately, in our country, such programs are common in a rather narrow field of scientific activity, and this is not least due to the fact that schoolchildren and students are not introduced to professional mathematical packages, the cost of only one license for which often amounts to thousands and tens of thousands of rubles.

We invite you to look into the world of free mathematical packages that can be downloaded for free from the Internet, used for any kind of research (sometimes with reservations), and also, thanks to the availability of source codes, to study their internal structure and, if desired, expand their functionality with your own forces.

Symbolic calculations

Computer Mathematics Systems (CCM) have been developed for a long time, and Maxima() was one of the first. Initially, it was a commercial product, but, unable to withstand the competition, the system moved into the category of free.

shell wxMaxima and a menu item that allows you to display or remove the panel of mathematical operations from the screen.

Main advantage Maxima before other free systems is support for symbolic computations. That is, by entering an analytical expression or equation, you can also get the result in an analytical form.

Maxima allows you to solve algebraic equations, systems of equations, perform the operations of integration, differentiation, expansion in a series, and so on. In addition, she can solve differential equations, boundary problems, Cauchy problems, perform algebraic calculations with matrices, build graphs and surfaces given by various functions in Cartesian and polar coordinate systems. It is difficult to list all the possibilities.

For SCM Maxima several shells have been developed, the most convenient of which (for a novice user) is wxMaxima(see fig. 1). Starting with version 0.8.0, it is rapidly changing for the better. The latest version (0.8.3) contains features of well-known commercial packages such as maple and MathCAD. Working in this shell is quite simple and allows you to get acceptable results after a few minutes of use. Many operations, whose names are present in the menu and on the toolbars, are equipped with convenient wizards that allow you to solve tasks without even knowing the built-in language and commands. Maxima. Well, and one more important fact - all shells for this SCM are Russified. In addition, by examining the free package Maxima, students will be able to more easily get used to commercial packages, which is due to both the relative similarity of the interface and the syntax used (especially Maxima and maple).

The system is well documented, but the reference material is only in English. Our magazine published educational materials about working at SCM Maxima(LXF81–86). As a console application, Maxima can work in batch mode, that is, it can send a text file with a list of commands for processing and again receive a text file with the results, and given that the output can be formatted using the markup system TeX, this allows you to use it as a base for building your own applications. One example of such development is the extension TeXmacs.

Based on the existing learning experience, it can be said that undergraduate students master work in Maxima quickly enough and begin to use it when completing assignments in other subjects. But with each course they have more and more problems.

The fact is that, along with a large number of positive aspects, Maxima there are also negative ones. Firstly, the end result, especially when solving complex problems, largely depends on the level of knowledge of mathematics and experience in using this SCM, because sometimes it is required to perform preliminary transformations on your own. Secondly, Maxima works very well with algebraic expressions, but transcendental, logarithmic and similar ones cause her significant difficulties. However, if an analytical solution cannot be obtained, then a numerical calculation can always be used. Thirdly, the possibilities Maxima for building complex graphs or visualizing, for example, a vector field, cannot be compared with the possibilities maple. And, finally, fourthly, for full-fledged work, it is necessary to study numerous commands and constants Maxima and that takes time and patience.

SCM Maxima included in many Linux distributions, or at least necessarily present in the repositories. It is included in educational products such as AltLinux School, Edubuntu, and EduMandriva.

Window SMath Studio, in which the function is defined, its derivative is calculated, and a graph is plotted.

It should be noted that engineers are still used to working with such a powerful calculator application as MathCAD. This is an engineering calculation system available for any platform (see commercial packages), but at a serious cost. However, employers require graduates to be able to work in this system. What about educational institutions?

A saving project was born in our country: SMath Studio(http://ru.smath.info/forum/). This is a free, but, unfortunately, not yet free product, the developer of which, Andrey Ivashov, is trying to create an alternative to the monster MathCAD, and he succeeds (see Fig. 2). Application designed for the environment .NET and then adapted to Mono.

SMath Studio allows you to perform analytical calculations, matrix operations, plotting and calculating derivatives, and even supports programming functions. Unfortunately, analytical integration is not yet supported, but the product is developing successfully, and in the fall of 2009 the author is finishing the development of an infrastructure that will allow the use of third-party plug-ins. Perhaps then the development of the application will reach a new level, and we will get a full-fledged alternative MathCAD.

It should also be noted that in the spring of 2009, by agreement with the author, the product was included in the educational distribution kit EduMandriva. Despite limited functionality, this application allows you to perform everyday calculations at the level of schoolchildren and undergraduate students, as well as simple engineering calculations. And given that SMath Studio feels great on pocket computers and smartphones controlled by Windows Mobile, then acquaintance with it for schoolchildren and students is simply a must.

The official website always has documentation in DOC and ODT formats, and on the official forum you can ask questions to the developer or the community and discuss the algorithms used in the development of the application.

Window wxMaxima with the results of symbolic calculations and the graph of the function

At the end of this section, I would like to focus on the fact that symbolic mathematics packages produce an expression as a result, not a number. Consider the example shown in Fig. 3, in which the user function is defined and the second derivative is found for it; then the function is integrated. At the same time, a graph was built. Thus, schoolchildren and students can visually perform a complete analysis of the function. And that's not all: Maxima knows how to simplify expressions by opening brackets, bringing like terms, performing substitutions and setting some conditions and assumptions imposed on the expression. Add to this the possibility of symbolic solution of equations and systems of equations, as well as differential equations, and you will understand that a modern student cannot do without these tools, and science teachers can enliven lessons and practical classes by introducing interactive tasks or demonstration material.

Numerical calculations

As you know, not every problem can be solved analytically, that is, a solution can be obtained in the form of a certain formula. Then various numerical methods come to the rescue to obtain a solution with some accuracy. The most well-known representative of applications for numerical calculations is the computer algebra system (CAS) matlab.

matlab is widely distributed throughout the world (see comparison in LXF109), but the cost of even educational licenses is beyond the reach of not only schools, but also many Russian universities. Abroad they also prefer to count money - and invest human resources in the development of free analogues matlab. Let's consider some of them.

First of all, in my opinion, it is worth stopping at the project GNU Leave(http://www.gnu.org/software/octave/). The developers position this system as "a high-level programming language for numerical calculations." Like many free *nix projects with a long tradition, it provides a command line interface. Type in terminal octave- and (if, of course GNU Octave installed on your computer), you will be prompted for this system. Start typing commands, and the terminal will display the results of the calculations.

The command line interface has its advantages, since it practically does not take up the computing resources of the computer, leaving all the power of the processor to the calculations themselves, and not to the beautiful display of command text and calculation results. Yet the modern user is rarely willing to put up with it.

. shell qtOctave with the calculations done.

Long time GNU Octave did not have a graphical interface, until finally there was qtOctave(see Fig. 4). This shell is very similar to the interface matlab and allows you to automate the execution of some routine operations (for example, plotting graphs) using wizards.

The language of the system is made as similar as possible to the language matlab; therefore, a person who has mastered GNU Octave, will be able to work practically without retraining in matlab which is exactly what employers need. In addition, a sufficient number of extension packages have been created for the system by enthusiasts of the free software movement. Due to this, the functionality of the SKA itself is constantly growing. Well, the availability of comprehensive documentation (albeit in English) for both the system and extension packs makes this product not only profitable, but also accessible for study.

The disadvantages include not very user-friendly shell interface qtOctave, especially since the version has not been updated since the fall of 2008 (it seems that the project is abandoned). Extension packs are not rich in features and do not shine with graphical capabilities; in addition, they are not equivalent, since the situation is such that one project is developed by a first-year student, and the second, for example, by a team of university teachers. But this is a completely free project, with which you don't have to worry about the license purity of the resulting solutions.

The next package that I would like to consider is called Scilab(http://www.scilab.org), whose very name indicates similarity with matlab. Initially, it was also a commercial product, and it was called Blaise, and then Basile. Its creators were inspired by the first versions matlab, and for a while they competed. However, in the early 90s, Simulog stopped selling it, and then six developers from the French National Research Institute (INRIA) founded the project Scilab.

Scilab compares favorably with its counterparts in the workshop with a well-developed interface, the presence of a sufficiently large number of specialized extension packages, and also the fact that it is supported by the Consortium Scilab, which includes major educational and scientific institutions from around the world.

Interface Scilab 5

Scilab is the only free system similar to matlab, which has its own block modeling tool called Scicos. The product distribution has a built-in script and function editor with debugging capabilities. Scilab has advanced graphics capabilities for creating high-tech applications. You can get acquainted with the functionality of the system by looking at demo examples - some of them are quite impressive (select menu items ? > Demonstration of possibilities).

Scilab includes functions not only for performing all kinds of operations on matrices, but also for plotting graphs and three-dimensional surfaces in various coordinate systems, functions for working with genetic algorithms, solving problems on graphs, statistical functions, simulation tools and much more. Several conferences dedicated to the use of SCA are held annually Scilab in science, education and industry.

Several books have been published around the world describing the work in Scilab, as well as solving a number of specialized tasks. Unfortunately, none of them has been translated into Russian. Only two books have been published in Russia, one within the framework of the national project, and the second Scilab described along with non-free packages. Our magazine has also repeatedly published textbooks on work in Scilab(LXF106-109 and ), and yet the documentation is still lacking, and reference materials do not always allow you to understand how a particular function works.

freemat- an impressive result of what a team of three like-minded people is capable of.

Release of the fifth version Scilab marked the beginning of a new stage in the development of the system. The application interface has changed (the developers abandoned GTK-interface), the block modeling tool began to change Scicos, which in October 2009 should change its name to xcos.

Another variation on the theme matlab is an freemat(); this package has another important thing in common with matlab, namely support for object-oriented programming. The interface of the program is quite pleasant. Command auto-completion is implemented in the main window. The official website contains a complete manual for working with the system (in English). The distribution kit of the program has a small, by today's standards, volume - 18 MB.

The system allows to perform numerical solution of equations and systems of equations, both linear and non-linear, and numerical signal processing (see Fig. 6); able to work with multidimensional matrices. The main positive points freemat, compared to Scilab and Octave, are the greater compatibility of the internal language of the system with the language matlab and use OpenGL to plot graphs and surfaces, resulting in a better look.

The downsides freemat are low performance (some tasks are solved many times slower than in other packages) and the absence of extension packages. This system is developed only by the efforts of a team of three people. The project does not have a large community.

distance mathematics

The systems mentioned above are local projects, that is, they are operated on the same machine. But this can be inconvenient - for example, in distance learning; in addition, not all students will agree (and sometimes even be able) to install these applications on their home computers. In this case, tools are needed for remote work with mathematical packages.

SMath Studio Live: count without leaving the browser (albeit not very quickly).

Among the considered by us, such an opportunity provides SMath Studio. In chapter Live The official website (http://smath.info/live) contains a virtual worksheet where anyone can perform their calculations. The system is very convenient, although it does not shine with speed.

And yet the system is more professional in this regard. SAGE(http://www.sagemath.org/). This system consists of a web server that provides a graphical interface for interacting with the code Python, on which its kernel is written. Any user using their favorite web browser can connect to the server, register and take ownership of their personal space. It can be both open and closed, that is, available only to the server administrator and the owner himself. In personal space, worksheets can be created, and all calculations are performed on them.

As part of the worksheet, you can use any available language, and there are many. Default system SAGE combines the following products: GAP, Maxima, Python, R, LaTeX. In addition, they can be connected Octave, Axiom, Magma, Mathematica, Matlab, Maple, Mupad other. As a result, we get a single remote work server that allows us to teach any mathematical packages and perform calculations using both free and commercial computer mathematics systems.

. For unknown reasons, Sage refuses to work Firefox, but otherwise it is a good solution for remote work.

The system of access rights to personal spaces and the possibility of joint work with the worksheet of several users at once allows organizing distance learning with an explanation sheet of educational material containing examples of problem solving, and sheets of personal tasks for each student.

There are currently several public SAGE-servers - you can connect to them, view the sheets posted in the public domain, create your own personal space and, in case of difficulties, ask for help from the community. To do this, simply make the worksheet public. I assure you: there are a lot of people who want to help, the only problem is that the working language is English.

The official site contains links to a test public server (http://www.sagenb.org), as well as to educational materials and books created using this system. Register and try SAGE– maybe this is what you are looking for? It is also worth noting that we were unable to log into the server in Firefox, but there were no problems in other browsers.

So, we have considered the most popular free systems of computer mathematics. Whether they can be used in training and for work is up to you. We have already made our choice, and we do not regret it.

Commercial systems

Three of the most popular commercial systems are: matlab(numerical calculations), maple(the main emphasis is on symbolic calculations) and Mathematica(successfully combines the aspirations of the first two). A powerful engineering package stands apart MathCAD, since it is more of a large engineering calculator, and it is not designed to solve complex problems of mathematical physics or the theory of encryption, signal processing, and so on.

All these packages have versions for the most common platforms: Windows, Linux and Mac OS X. Here is the cost of one license of these packages for academic institutions, according to the Softline price list:

  • matlab- 30,765 rubles;
  • Mathematica- 9002 rubles;
  • maple- 36,286 rubles;
  • MathCAD- 5290 rubles.

You can draw your own conclusions.

identical transformations of expressions (including simplification), analytical solution of equations and systems;

differentiation and integration, analytical and numerical;

solution of differential equations;

carrying out series of calculations with different values ​​of initial conditions and other parameters.

At the same time, the range of tasks solved by such systems is very wide:

  • conducting mathematical research requiring calculations and analytical calculations;
  • development and analysis of algorithms;
  • mathematical modeling and computer experiment;
  • data analysis and processing;
  • visualization, scientific and engineering graphics;
  • development of graphic and calculation applications.

Principles of construction of mathematical models. The main stages of modeling.

Mathematical modeling is the creation of a mathematical description of a real object and the study of this description.

Principles of building mathematical models

Main stages of modeling

The whole modeling process can be divided into the following stages:

formulation of the modeling problem;

building a model diagram, highlighting the main parts and processes;

determining an optimization criterion or value to be calculated;

selection of the main changeable parameters;

mathematical description of the main parts and processes;

building a solution linking the variable parameters and the optimization criterion or the calculated value;

study of the solution for an extremum or calculation of the desired parameter.

Statement of the modeling problem

The problem statement is usually formulated as a verbal description. At the formulation stage, the object of modeling, the goals of building the model, and the optimization criteria should be described.

Building a model diagram, highlighting the main parts and processes

At this stage, on the basis of the problem statement, the modeling object is divided into main parts and a list of processes of interaction of these parts is determined.

This is where general-purpose packages can't help either. Specialized packages usually already contain elements of dividing the model into parts for their subject area.

A quantifiable optimization criterion or desired quantitative parameter must be formulated.

A list of all variable parameters and their characteristic quantitative expression should be formulated.

Mathematical description of the main parts and processes

The interaction of the parts of the model must be expressed by mathematical formulas. The section of mathematics that will be used for the description is chosen for reasons of convenience. Those. First of all, this section should be able to quantitatively describe this type of interaction.

The result of this stage is a system of equations or other mathematical expressions that formally describes the interaction of parts and allows a solution, i.e. dependence derivation: optimization criterion as a function of variable parameters.

In particular, it is desirable that the system of equations be closed and that a formal proof of the existence of a solution be available.

Here, only the apparatus is provided to general purpose packages. Specialized packages usually have a predefined mathematical apparatus and are based on a ready-made mathematical description of the problem.

Building a Solution Connecting Variable Parameters and an Optimization Criterion

A SOLUTION is being built, i.e. an explicit functional relationship is determined: an optimization criterion or a calculated parameter as a function of the variable parameters.

It is this stage that is the main field for applying the forces of applied packages of mathematical modeling. This is due to the fact that analytical solutions for the mathematical description of complex objects are usually impossible. And the construction of the solution is reduced to the construction of a "numerical solver", which, according to the given values ​​of the variable parameters, can calculate the value of the optimization criterion.

In rare cases of the existence of an analytical solution of the model, the role of applied packages of mathematical modeling is reduced to the definition of a solution function.

There are special subsystems of applied packages of mathematical modeling - systems of analytical (symbolic) calculations - these subsystems can be used to maximize the analyticity of the solution, i.e. replacement of numerical methods with the search for a functional expression of solutions. Analytical solutions are almost always “better” than numerical ones, because they allow us to express the desired patterns in terms of known functions, which greatly speeds up calculations and increases the accuracy of calculations.

Investigation of a solution to an extremum

The complexity of investigating the solution to the extremum is most often associated with the significant time spent on calculating the optimization criterion for the given values ​​of the variable parameters and/or the large number of acceptable combinations of the variable parameters, which leads to a huge number of calculations and, again, a significant amount of time.

This stage is another field for applying forces to packages. Methods for studying functions for extrema are well developed in mathematics and can be formally applied to any given function.

Parametric Surface Creator

Surfer

package Simulink

gnuplot ImageMagick

Parametric Surface Creator

The program is designed for visual representation of geometric objects described by parametrically defined surfaces, such as sphere, torus, Möbius strip and others. To describe objects, a Pascal-like language is used with support for all standard mathematical functions of the Pascal language and several additional ones. The resulting object is displayed in vector form using the original vector rasterization algorithm, which allows you to get a smooth and natural image even at low monitor resolutions and does not require any hardware support. It is possible to export the image to a BMP file.

Surfer- a program for creating three-dimensional surfaces. Commercial simulation programs for tasks with a predominance of "logical aspects": AutoMod, Process Model, SIMFACTORY, etc.

package Simulink, focused specifically on the tasks of simulation modeling.

gnuplot 1 is a popular program for creating two- and three-dimensional graphs. gnuplot has its own command system, can work interactively (in command line mode) and execute scripts read from files. Used by gnuplot as an image output system in various math packages: GNU Octave, Maxima, and many others. ImageMagick is a cross-platform software package for batch processing of graphic files. Supports a huge number of graphic formats. Can be used with Perl, C, C++, Python, Ruby, PHP, Pascal, Java languages, in shell scripts or on its own.

Using Components

Mathcad program documents have the ability to insert modules (component

) other applications to expand the possibilities of visualization, data analysis, performance of specific calculations.

The Axum Graph component is designed for advanced data visualization. To work with tabular data - Microsoft Excel.

Data Acquisition Components, ODBC Input allow you to use external databases.

There are also free modules (add-in) for integrating Mathcad with Excel programs, AutoCAD.

The Axum S-PLUS Script component is intended for statistical analysis.

A significant expansion of the package's capabilities is achieved by integrating with the super-powerful MATLAB application.

Complete set

Versions of Mathcad may differ in package contents and user license. Versions were delivered at different times Mathcad Professional, Mathcad Premium, Mathcad Enterprise Edition(differ in configuration). For academic users, the version is intended Mathcad Academic Professor(has full functionality, but differs in a user license and has a several times lower cost).

For some time, simplified and noticeably “cut down” student versions of the program were also produced.

However, while the mathematical capabilities of MathCad in the field of computer algebra are much inferior to Maple, Mathematica, MatLab, and even the little Derive. However, many books and training courses have been published under the MathCad program, including in Russia. Today, this system has become literally the international standard for technical computing, and even many schoolchildren master and use MathCad. For a small amount of calculations, MathCad is ideal - here everything can be done very quickly and efficiently, and then format the work in the usual way (MathCad provides ample opportunities for formatting results, up to publication on the Internet). The package has convenient data import/export capabilities. For example, you can work with Microsoft Excel spreadsheets right inside a MathCad document.

In general, MathCad is a very simple and convenient program that can be recommended to a wide range of users, including those who are not very knowledgeable in mathematics, and especially to those who are just learning its basics.

As cheaper, simple, but ideologically close alternatives to the MathCad program, one can note such packages as the already mentioned YaCaS, the commercial MuPAD system ( http://www.mupad.de/) and the free KmPlot program

Mupad math package

As for the MuPAD program (Figure 2.6), it is a modern integrated system of mathematical calculations, with which you can perform numerical and symbolic transformations, as well as draw two-dimensional and three-dimensional graphs of geometric objects. However, in terms of its capabilities, MuPAD is significantly inferior to its venerable competitors and is rather an entry-level system designed for training.

MuPAD Pro 3 is a relatively new computer algebra system with an extensive set of tools, including mathematical algorithms for symbolic and numerical calculations, and tools for visualization, animation and interactive manipulation of 2D and 3D graphs and other mathematical objects.

Key features of Matlab

Platform-independent high-level programming language focused on matrix calculations and algorithm development

Interactive environment for code development, file and data management

· Linear algebra functions, statistics, Fourier analysis, solution of differential equations, etc.

· Rich visualization tools, 2-D and 3-D graphics.

Built-in user interface development tools for creating complete MATLAB applications

C/C++ integration tools, code inheritance, ActiveX technologies

The basic set of MatLab includes arithmetic, algebraic, trigonometric and some special functions, fast direct and inverse Fourier transform and digital filtering functions, vector and matrix functions. MatLab "can" perform operations with polynomials and complex numbers, build graphs in Cartesian and polar coordinate systems, form images of three-dimensional surfaces. MatLab has tools for calculating and designing analog and digital filters, building their frequency, impulse and transient characteristics and the same characteristics for linear electrical circuits, tools for spectral analysis and synthesis.

The C Math library (MatLab compiler) is an object library and contains over 300 data processing procedures in the C language. Inside the package, you can use both the procedures of the MatLab itself and the standard procedures of the C language, which makes this tool a powerful help when developing applications (using the C Math compiler , you can embed any MatLab procedures in ready-made applications).

The C Math library allows you to use the following categories of functions:

operations with matrices;

comparison of matrices;

solving linear equations;

decomposition of operators and search for eigenvalues;

finding the inverse matrix;

search for a determinant;

calculation of the matrix exponential;

elementary mathematics;

functions beta, gamma, erf and elliptic functions;

basics of statistics and data analysis;

search for the roots of polynomials;

filtering, convolution;

Fast Fourier Transform (FFT);

· interpolation;

Operations with strings

· file I/O operations, etc.

At the same time, all MatLab libraries are characterized by high speed of numerical calculations. However, matrices are widely used not only in such mathematical calculations as solving problems of linear algebra and mathematical modeling, calculation of static and dynamic systems and objects. They are the basis for the automatic compilation and solution of the equations of state of dynamic objects and systems. It is the universality of the matrix calculus apparatus that significantly increases the interest in the MatLab system, which incorporates the best achievements in the field of fast solution of matrix problems. Therefore, MatLab has long gone beyond the specialized matrix system, turning into one of the most powerful universal integrated systems of computer mathematics.

Maple math package.

maple( http://www.maplesoft.com/)

Processor Pentium III 650 MHz;

400 MB disk space;

Operating systems: Windows NT 4 (SP5)/98/ME/2000/2003 Server/XP Pro/XP Home.

The Maple program (latest version 10.02) is a kind of patriarch in the family of symbolic mathematics systems and is still one of the leaders among universal symbolic computing systems. (Figure 2.15,2.16) It provides the user with a convenient intellectual environment for mathematical research at any level and is especially popular in the scientific community.

Note that the symbolic analyzer of the Maple program is the most powerful part of this software, so it was borrowed and included in a number of other CAE packages, such as MathCad and MatLab, as well as in Scientific WorkPlace and Math Office for Word packages for preparing scientific publications. . The Maple package is a joint development of the University of Waterloo (Ontario, Canada) and the Higher Technical School (ETHZ, Zurich, Switzerland).

For its sale, a special company was created - Waterloo Maple, Inc., which, unfortunately, became more famous for the mathematical elaboration of its project than for the level of its commercial implementation. As a result, the Maple system was previously available mainly to a narrow circle of professionals. Now this company works together with the more successful in commerce and in the development of the user interface of mathematical systems, MathSoft, Inc. - the creator of very popular and mass systems for numerical calculations MathCad, which have become the international standard for technical calculations.

Maple provides a convenient environment for computer experiments, during which various approaches to the problem are tried, particular solutions are analyzed, and, if necessary, programming fragments that require special speed are selected.

The package allows you to create integrated environments with the participation of other systems and high-level universal programming languages. When the calculations are made and it is required to formalize the results, then you can use the tools of this package to visualize the data and prepare illustrations for publication. To complete the work, it remains to prepare printed material (report, article, book) directly in the Maple environment, and then you can proceed to the next study. The work is interactive - the user enters commands and immediately sees the result of their execution on the screen. At the same time, the Maple package is not at all like a traditional programming environment, where a strict formalization of all variables and actions with them is required. Here, the choice of appropriate types of variables is automatically ensured and the correctness of the operations is checked, so that in the general case there is no need for a description of variables and strict formalization of the notation.

The Maple package consists of a core (procedures written in C and well optimized), a library written in the Maple language, and a rich front-end. The kernel performs most of the basic operations, and the library contains many commands - procedures that are executed in interpretation mode.

The Maple interface is based on the concept of a worksheet, or document containing I/O lines and text, as well as graphics (Figure 2.17).

The package is processed in the interpreter mode. In the input line, the user specifies a command, presses the Enter key and receives the result - a line (or lines) of output or a message about an erroneously entered command. An invitation to enter a new command is immediately issued, etc.

Calculations in Maple

The Maple system can be used at the most elementary level of its capabilities - as a very powerful calculator for calculating given formulas, but its main advantage is the ability to perform arithmetic operations in symbolic form, that is, the way a person does it. When working with fractions and roots, the program does not reduce them to decimal form during calculations, but makes the necessary reductions and conversions to a column, which allows you to avoid rounding errors.

To work with decimal equivalents, the Maple system has a special command that approximates the value of an expression in floating point format. The Maple system calculates finite and infinite sums and products, performs computational operations with complex numbers, easily converts a complex number to a number in polar coordinates, calculates the numerical values ​​of elementary functions, and also knows many special functions and mathematical constants (such as "e " and "pi"). Maple supports hundreds of special functions and numbers found in many areas of mathematics, science and technology.

Programming in Maple.

The Maple system uses the 4th generation procedural language (4GL). This language is specifically designed for the rapid development of mathematical routines and custom applications. The syntax of this language is similar to the syntax of the high-level universal languages: C, Fortran, Basic and Pascal.

Maple can generate code that is compatible with programming languages ​​such as Fortran or C, and with the LaTeX typing language, which is very popular in the scientific world and is used for publishing. One of the advantages of this property is the ability to provide access to specialized numerical programs that maximize the speed of solving complex problems. For example, using the Maple system, you can develop a certain mathematical model, and then use it to generate C code corresponding to this model. The 4GL language, specially optimized for developing mathematical applications, allows you to shorten the development process, and Maplets elements or Maple documents with integrated graphical components help you customize the user interface.

At the same time, in the Maple environment, you can also prepare documentation for the application, since the package tools allow you to create professional-looking technical documents containing text, interactive mathematical calculations, graphics, drawings, and even sound. You can also create interactive documents and presentations by adding buttons, sliders, and other components, and finally publish documents on the Web and deploy interactive computing on the Web using the MapleNet server.

Mathematica package.

Mathematica ( http://www.wolfram.com/)

Minimum system requirements:

Pentium II processor or higher;

400-550 MB disk space;

operating systems: Windows 98/Me/NT 4.0/2000/2003 Server/2003x64/XP/XP x64.

Wolfram Research, Inc., which developed the Mathematica computer mathematics system (Figure 2.27,2.28), is rightfully considered the oldest and most solid player in this area. The Mathematica package (current version 5.2) is widely used in calculations in modern scientific research and has become widely known in the scientific and educational environment. You can even say that Mathematica has a significant functional redundancy (there, in particular, there is even an opportunity for sound synthesis).

Mathematica combines a numerical and symbolic computing core, a graphics system, a programming language, a documentation system, and the ability to interact with other applications into a single whole. For the entire Mathematica environment, there is no single competitor. Broadly speaking, competitors fall into the following groups: numerical packages, computer algebra systems, typing and documentation applications, graphics and statistical systems, traditional programming languages ​​(interface development tools), and spreadsheets. Since Mathematica was first introduced, other math packages have greatly expanded their range of capabilities, originally designed to solve problems that fall into just one or two of the above categories.
However, it is unlikely that this powerful mathematical system, which claims to be world leader, is needed by a secretary or even the director of a small commercial company, not to mention ordinary users. But, undoubtedly, any serious scientific laboratory or university department should have a similar program if they are seriously interested in automating the performance of mathematical calculations of any degree of complexity. Despite their focus on serious mathematical calculations, Mathematica class systems are easy to learn and can be used by a fairly wide category of users - university students and teachers, engineers, graduate students, scientists, and even students of mathematical classes in general education and special schools. All of them will find numerous useful applications in such a system.

At the same time, the broadest functions of the program do not overload its interface and do not slow down calculations. Mathematica consistently demonstrates the high speed of symbolic conversions and numerical calculations. Of all the systems under consideration, Mathematica is the most complete and versatile, but each program has its own advantages and disadvantages. And most importantly, they have their adherents, whom it is useless to convince of the superiority of another system. But those who work seriously with computer mathematics systems should use several programs, because only this guarantees a high level of reliability of complex calculations.

Note that in the development of various versions of the Mathematica system, along with the parent company Wolfram Research, Inc., other companies and hundreds of highly qualified specialists, including mathematicians and programmers, took part. Among them are representatives of the Russian mathematical school, which is respected and in demand abroad. The Mathematica system is one of the largest software systems and implements the most efficient calculation algorithms. Among them, for example, is the mechanism of contexts, which excludes the appearance of side effects in programs.

Mathematica is now regarded as the world's leading symbolic mathematics computer system for the PC, providing not only the ability to perform complex numerical calculations with the output of their results in the most sophisticated graphical form, but also the performance of particularly time-consuming analytical transformations and calculations.

Mathematica has several main features and is designed to solve a wide range of problems. Here are some classes of problems solved with Mathematica:

1. Working with symbolic complex calculations using hundreds of thousands or millions of members.
Loading, analysis and visualization of data.

2. Solution of ordinary and differential equations, as well as problems of numerical or symbolic minimization.

3. Numerical modeling and simulation, building control systems, ranging from the simplest to collisions of galaxies, financial losses, complex biological systems, chemical reactions, studying the impact on the environment and magnetic fields in particle accelerators.

4. Easy and fast application development (RAD) for tech companies and financial institutions.

5. Create professional, interactive, technical reports and documents for distribution electronically or on paper.

6. Detailed technical documentation, eg for US patents.

7. Conducting special presentations and seminars.

8. Illustrate math or science concepts for students from college to graduate school.

Versions of the system under Windows have a modern user interface and allow you to prepare documents in the form of Notebooks (notebooks). They combine source data, descriptions of algorithms for solving problems, programs and solution results in the most diverse form (mathematical formulas, numbers, vectors, matrices, tables and graphs).

Mathematica was conceived as a system that automates the work of scientists and analytical mathematicians as much as possible, so it deserves to be studied even as a typical representative of elite and highly intelligent software products of the highest degree of complexity. However, it is of much greater interest as a powerful and flexible mathematical toolkit that can provide invaluable assistance to most scientists, university and university professors, students, engineers, and even schoolchildren.

From the very beginning, much attention was paid to graphics, including dynamic ones, and even multimedia capabilities - dynamic animation playback and sound synthesis. The set of graphics functions and options that change their action is very wide. Graphics has always been a strong point of the various versions of Mathematica and has given them the lead among computer mathematics systems.

As a result, Mathematica quickly took a leading position in the market for symbolic mathematical systems. Particularly attractive are the extensive graphical capabilities of the system and the implementation of the Notebook-type interface. At the same time, the system provided a dynamic connection between the cells of documents in the style of spreadsheets, even when solving symbolic tasks, which fundamentally and favorably distinguished it from other similar systems.

By the way, the central place in systems of the Mathematica class is occupied by a machine-independent core of mathematical operations, which allows you to transfer the system to various computer platforms. To transfer the system to another computer platform, the Front End software interface processor is used. It is he who determines what kind of user interface the system has, that is, the interface processors of Mathematica systems for other platforms may have their own nuances. The kernel is made compact enough to be able to call any function from it very quickly. To expand the set of functions, a library (Library) and a set of extension packages (Add-on Packages) are used. Extension packages are prepared in Mathematica's own system programming language and are the main means for developing the system's capabilities and adapting them to solving specific classes of user problems. In addition, the systems have a built-in electronic help system - Help, which contains electronic books with real examples.

Thus, Mathematica is, on the one hand, a typical programming system based on one of the most powerful high-level problem-oriented functional programming languages, designed to solve various problems (including mathematical ones), and on the other hand, an interactive system for solving most mathematical problems. tasks interactively without traditional programming. Thus, Mathematica as a programming system has all the possibilities for developing and creating almost any control structures, organizing I / O, working with system functions and servicing any peripheral devices, and with the help of extension packages (Add-ons), it becomes possible to adapt to the needs of any user (although an ordinary user may not need these programming tools - he will completely manage with the built-in mathematical functions of the system, which amaze even experienced mathematicians with their abundance and variety).

The disadvantages of the Mathematica system include perhaps a very unusual programming language, which, however, is facilitated by a detailed help system.

FlatGraph is a program for constructing graphs of functions (normal and parametric) with advanced features (Figure 2.33). Differentiation of any order (with simplification). Construction of tangents to the graph. The program is designed for both inexperienced and professional users, because it combines an intuitive interface with professional features.

FlatGraph allows you to:

Enter one or more functional expressions of any complexity for display and (or) their differentiation;

Perform symbolic differentiation for the specified order of the derivative, as well as perform simplification of the resulting derivative;

Explore the "live" change of various function parameters with the simultaneous display of new graphs, which allows you to determine the effect of function parameters on their appearance;

Use automatic or manual scaling of function graphs for linear scales;

Set and display graphically parametric functions, displaying, for example, ellipsoids, cardioid, Bernoulli's lemniscates and other similar graphs (where the abscissa and ordinate depend on one parameter "t");

Solve equations, systems of equations and inequalities graphically;

Get and display the tangent to the graph of the function at the point x0 (set by the user).

FlatGraph has a simple and intuitive interface, provided with detailed documentation on how to use it and examples of how it works.

Math packages. Modeling. List the features and main tasks solved by packages.

Math packages are an integral part of the world of CAE-systems. (Computer Aided Engineering) Nowadays, math packages apply the principle of model construction, and not the traditional "art of programming". That is, the user sets a task, and the system finds methods and algorithms for solving it itself. Modern mathematical packages can be used both as a regular calculator and as a means to simplify expressions when solving any problems, as well as a graphics or even sound generator! At present, almost all modern mathematical programs have built-in functions for symbolic calculations. However, Maple, MathCad, Mathematica and MatLab are considered the most famous and adapted for mathematical symbolic calculations. Mathematical modeling - creation of a mathematical description of a real object and the study of this description.

Initially, any calculations on the models were made manually. As computing devices evolved, these devices were used to speed up calculations.

The computer allows using it as a means of automating scientific work and various specialized programs are used to solve complex calculation problems.

At the same time, in scientific work there is a wide range of simple mathematical problems, for which universal professional tools can be used.

Such simple tasks include, for example, the following:

preparation of scientific and technical documents containing text and formulas written in a form familiar to specialists;

calculation of the results of mathematical operations involving numerical constants, variables and dimensional physical quantities;

operations with vectors and matrices;

solution of equations and systems of equations (inequalities);

statistical calculations and data analysis;

construction of two-dimensional and three-dimensional graphs;

identical transformations of expressions (including simplification), analytical

This article is the second in a series devoted to various real-world applications that can be used to test processors, computers, laptops and workstations, and which will later form the basis of the new iXBT Application Benchmark 2017 test suite. Recall that in the first article of this series we considered two specialized applications LAMMPS and NAMD, which are used to solve molecular dynamics problems. In this article, we will focus on the specialized FFTW and GNU Octave math packages. These applications, like LAMMPS and NAMD, are part of the well-known specialized test package SPECwpc 2.0. Moreover, we borrowed the computational tasks themselves (workload) and the commands for launching programs with the appropriate parameters from the SPECwpc 2.0 package.

FFTW 3.3.5

The GNU Octave environment supports working with script files (), and to run the script, use the command:

octave-cli-4.0.3.exe

(The file octave-cli-4.0.3.exe is located in the C:\Octave\Octave-4.0.3\bin\ folder when installing the default package.)

For testing, we use a script file that implements operations with cycles, calculation of integrals, fast Fourier transform and operations with matrices. We did not write this script from scratch, but took it from the SPECwpc 2.0 package, which includes a test based on GNU Octave. This script is called obench.m. The result of the test is the execution time of the script.

Test stand and testing methodology

For testing using the FFTW and GNU Octave applications, we assembled a bench with the following configuration:

  • Processor: Intel Core i7-6950X (Broadwell-E);
  • Motherboard: Asus Rampage V Edition 10 (Intel X99);
  • Memory: 4x4 GB DDR4-2400 (Kingston HyperX Predator HX424C12PBK4/16);
  • Video card: Nvidia Quadro 600;
  • Storage: Seagate ST480FN0021 SSD (480 GB).

During testing, the execution time of test tasks was measured.

The dependence of test results on the number of used processor cores, on the frequency of processor cores and on the memory frequency was considered.

Dependence of results on the number of processor cores

The number of cores of the Intel Core i7-6950X processor used during testing was regulated through the UEFI BIOS settings of the Asus Rampage V Edition 10 board. Recall that the Intel Core i7-6950X processor is 10-core, but supports Hyper-Threading technology, so the operating system and applications it is seen as 20-core (has 20 logical cores).

We did not disable the Hyper-Threading technology and only changed the number of physical processor cores from 1 to 10. In the future, we will talk about the logical processor cores, the number of which changed from 2 to 20 in increments of 2.

The frequency of all processor cores was fixed at 4.0 GHz.

As you can see, the results are very strange. Interpreting the results for the GNU Octave package is quite simple. In this package, the test task execution speed practically does not depend on the number of processor cores, that is, in the Intel Core i7-6950X processor version, even two logical cores are enough to complete the test task. As the number of available processor cores increases, the task is parallelized, but the share of each core load decreases in proportion to their number. As a result, the test task execution speed does not change with an increase in the number of processor cores.

But with the FFTW application, everything is very strange and illogical. With 6, 12 and 14 (logical) cores, the execution time of the test task becomes abnormally long. In other cases, the execution time of the test task is approximately the same. The result is rather strange, but it has been repeatedly rechecked.

If you look at the processor load during the test, then the situation is as follows. First, the task is parallelized across all processor cores. Secondly, at some intervals the load of the processor cores turns out to be low, and at some intervals it is high. Moreover, this behavior is observed for any number of cores. And why, with a certain number of processor cores, the test execution time becomes abnormally large - it is not clear.

We have done additional research on this strange behavior of the test. To do this, we disabled the Hyper-Threading technology in the processor and repeated the testing in the FFTW application, changing the number of physical processor cores from 1 to 10. The test results are as follows:

With Hyper-Threading disabled, the result is even more illogical. At 3, 5, 6, 7 and 9 cores, the test execution time was long, and at 1, 2, 4, 8 and 10 cores, it turned out to be small. That is, it turns out that the efficiency of task parallelization depends on the number of processor cores, but not at all in the sense that a larger number of cores improves the result. With a certain number of cores, the task is parallelized well, and with some it is bad.

However, we still had doubts about the correctness of our conclusions, since in this case we were not talking about a real two-, four-, six- and so on-core processor, but about artificial blocking of cores through the BIOS of the motherboard. We decided to repeat the test with another processor - a six-core (12 logical cores including Hyper-Threading) Intel Core i7-5820K. As we have seen, with 6 physical or 12 logical processor cores, the test execution time becomes abnormally high. And on the Intel Core i7-5820K processor, this result was confirmed. The processor worked at a frequency of 3.6 GHz. With all activated cores with Hyper-Threading technology (12 cores), the test task execution time is abnormally long: 1886 s. If you turn off the cores sequentially, then with 10, 8, 4 and 2 cores, the test execution time is 200-400 s, and with 6 cores - 1235 s.

As you can see, the same strange result is obtained on the Intel Core i7-5820K processor as on the Intel Core i7-6950X processor.

Despite such a strange dependence of the FFTW test results on the number of processor cores, we decided to leave it in the application package that will be used in the iXBT Application Benchmark 2017. This application clearly demonstrates that not always a lot of cores is a good thing. Sometimes it happens differently.

Perhaps in the final version we will reduce the size of the Fourier transform itself in order to exclude cases when such a test lasts more than 30 minutes.

Dependence of results on processor frequency

Now let's look at how the results of testing in the FFTW and GNU Octave applications depend on the processor frequency.

The frequency of the cores of the Intel Core i7-6950X processor was changed in the UEFI BIOS settings of the Asus Rampage V Edition 10 board by changing the multiplier. The frequency of all cores was fixed (that is, the Turbo Boost mode was turned off). All processor cores (10 physical/20 logical) were used. The frequency changed from 3.0 GHz to 4.2 GHz in 200 MHz increments. The test results are as follows:

As can be seen from the test results, both in the FFTW package and in the GNU Octave package, the test execution time depends on the processor frequency. In the FFTW package, when the processor frequency is increased from 3 to 4.2 GHz (an increase of 40%), the test execution time decreases by 21%. In the GNU Octave package, a similar increase in the frequency of the processor leads to a decrease in the execution time of test tasks by 24%.

Thus, the dependence of the results of the FFTW and GNU Octave tests on the processor frequency is quite typical. The test problem in the GNU Octave package scales slightly better in terms of processor frequency, while the problem in the FFTW package scales slightly worse.

Dependence of results on memory frequency

Now let's consider the dependence of the speed of execution of test tasks on the frequency of memory operation. DDR4 memory worked in quad-channel mode (one module per channel), and the memory frequency was changed in the UEFI BIOS settings in the range from 1600 MHz to 2800 MHz in 200 MHz increments. Memory timings were fixed and did not change when the frequency changed. All processor cores were clocked at 4.0 GHz.

The test results are as follows:

As you can see, the speed of execution of test tasks in the GNU Octave and FFTW packages does not depend on the memory frequency in any way. At least in the quad-channel mode, DDR4 memory bandwidth is sufficient even at 1600 MHz, and a further increase in the memory frequency does not allow speeding up test tasks.

This is a typical result for most applications. Applications whose performance depends on the memory frequency are rather an exception to the rule.

Conclusion

So, in the second article of our new series, we looked at two tests based on specialized mathematical applications FFTW and GNU Octave. Using the 10-core Intel Core i7-6950X processor as an example, it was shown that the test tasks in these packages are parallelized to all processor cores, but cannot load them 100%. The test result in the GNU Octave application practically does not depend on the number of processor cores, and the test result in the FFTW application, on the contrary, strongly depends on the number of processor cores, but this dependence is very strange. For a certain number of cores (14, 12, and 6), the test task execution time becomes abnormally large, and in all other cases, the test task execution time depends weakly on the number of cores.

In addition, it was shown that the speed of execution of test tasks in the FFTW and GNU Octave packages linearly depends on the frequency of the processor cores (when the frequency changes in the range from 3 to 4.2 GHz).

Finally, it was shown that the execution time of test tasks in FFTW and GNU Octave applications does not depend in any way on the frequency of DDR4 memory (in quad-channel mode and in the range from 1600 to 2400 MHz).

There is one more thing to note about the FFTW and GNU Octave applications when using them for testing purposes. The GNU Octave package has a poor repeatability of results, and five runs of the test are desirable to obtain a low error result. The FFTW application gives more consistent results, but this application still requires at least three test runs.

In the next article in this series, we will look at three applications that are used to render 3D scenes: POV-Ray 3.7, LuxRender 1.6, and Blender 2.77a.



Liked the article? Share it