Maple

Z MetaCentrum
Přejít na: navigace, hledání


Description

Maple is a general-purpose computer algebra system -- an enviroment for sympolic computations, solving scientific and engeneering problems, mathematic research, and/or data visualization, thus allowing a creation of technical publications.

Usage

The following usage examples are specialized on and tested with the newest Maple version available (Maple 16); their application on the older versions is possible, but might not work.

Once submitting a job, which is intended to perform Maple computations, it is necessary to provide the scheduler with a requirement for available Maple license (thus, the job will be started just once a license becomes available). This requirement is specified by setting the maple job's property, as shown on the following examples (for another license reservation options see the #License reservation section below).

Interactive use

  • Provide the scheduling system with a requirement for the number of available nodes/cores and Maple licenses:
qsub -I -l select=1:ncpus=X:... -l maple=1      # requires 1 license, 1 node having X cores
  • Initialize the Maple environment ("module add maple") and run the command:
    • maple ... for interactive text environment
    • xmaple ... for interactive graphical environment
      • if the interactive graphical environment is required, it is necessary to have a connection to an X-server, see the page X-Window for details

Batch use

Create a job startup script, which initially performs an intialization of the modules subsystem, followed by an initialization of the Maple environment. After that, the script might perform the Maple computations intended:

#!/bin/sh

# initialize the Maple
module add maple

# perform Maple computations
maple < mymaplefile.{txt,mpl}

Subsequently, submit the script together with your requirements for the number of available nodes/cores and Maple licenses:

qsub -l select=1:ncpus=X:... -l maple=1 myScript.sh          # requires 1 license, 1 node having X cores

Integrating Maple with Matlab

The installed Maple Toolbox for Matlab allows two-way integration between Maple and Matlab environments -- the toolbox thus allows to combine the Maple's symbolic computations with Matlab's numeric computations. See more information about the toolbox at Maple official site.

Usage example (interactive job):

  • ask the scheduling system for an interactive job
qsub -I -l select=1:ncpus=X:... -l maple=1            # X ... the number of required cores
  • initialize the matlab module
module add matlab
  • start the Matlab having the Maple symbolic toolbox enabled
matlab-sym-maple
  • write the following set of commands into the Matlab worksheet:
maple                    % starts the Maple (might take some time)
syms x y                 % initializes symbolic variables
cos(sqrt(x^2-y^2))/x^2
setmaple('h',ans)        % allows the result to be accessible from the Maple
  • an access to the resulting formula (h variable) from the Maple environment can be checked by typing the h into the Maple worksheet and pressing Enter -- the Matlab formula should be shown.


For more detail (e.g., a batch toolbox usage), please visit the Matlab section of this Wiki or visit the Maple official pages.

A very useful videopresentation illustrating the toolbox usage together with its capabilities can be found here.

Documentation

Licenses

  • Maple 2017.1: 15 floating liceses
  • Maple 16: 30 floating liceses
  • Maple 15: 30 floating liceses
  • Maple 11: 1 floating liceses
  • Maple 10: 1 floating liceses
  • Maple 5: unlimited number of licenses, but limited to the use from the Supercomputing Centre Brno nodes

Warning.gif WARNING: The purchased licenses permit just an academic use of the program!

Supported platforms

Linux, SGI IRIX (various versions)

Program administrator

Tomáš Rebok (rebok at ics.muni.cz)

Homepage

URL: http://www.maplesoft.com/products/maple/index.aspx

License reservations

As mentioned above, the Maple application is available in different versions:

  • when using a floating license (Maple 10, 11, 15 and 16), it is necessary to ask the scheduling system for a license reservation via the job submission attributes. Currently, there are for types of Maple licenses available via the scheduling system attributes:
    • maple Maple 16, 15
    • maple11 Maple 11
    • maple10 Maple 10
    • maple10p Maple 10+ i.e., whichever is free
  • since the Maple 5 has its license limited to a location, it is necessary to start the Maple from the appropriate nodes


Maple 16

The Maple 16 is able to use just more computational threads (i.e., cores on a single node).

It is necessary to ask for a floating license. Thus, the job submission (requiring a single computational node) should be performed as follows:

qsub -l select=1:ncpus=4:mem=16gb -l maple=1 ...

i.e., the job is asking for four cores on a single 64-bit node, 16GB of memory and a single Maple 16 license.

Maple 15

The Maple 15 is able to use both more computational threads (i.e., cores on a single node) and more distributed nodes (once the Grid toolbox becomes availabe -- see above).

It is necessary to ask for a floating license. Thus, the job submission (requiring a single computational node) should be performed as follows:

qsub -l select=1:ncpus=4:mem=16gb -l maple=1 ...

i.e., the job is asking for four cores on a single 64-bit node, 16GB of memory and a single Maple 15 license.

Maple 11

Maple 11 is able to use more computing threads (cores) on a single node. The list of parallelized internal functions is limited (primarily matrix functions with floats), however, it is possible to create own parallelized applications.

It is necessary to ask for a floating license. The job submission will thus look like as follows:

qsub -l select=1:ncpus=4:mem=16gb -l maple11=1 ...

i.e., the job is asking for four cores on a single 64-bit node, 16GB of memory and a single Maple 11 license.

Maple 10

The purchased Maple 10 is able to use just a single processor (on a single node). It is necessary to ask for a floating license. The job submission will thus look like as follows:

qsub -l select=1:ncpus=4:mem=16gb -l maple10=1 ...

i.e., the job is asking for a single core on a single 64-bit node, 16GB of memory and a single Maple 10 license.

Maple 10 or 11

If it's not important, which version (10 or 11) will perform the computation, it is possible to ask for a "maple10p" license, which will result in reserving any of the available ones (for Maple 10 or 11). In such a case, the "maple" command has to be used for invoking Maple -- the command will start Maple 10, if a license for Maple 10 is available, or Maple 11, if a license for Maple 11 is available. (The command line options are exactly the same as for the original "maple" command.).

In such a case, the job submission will look like as follows:

qsub -l select=1:ncpus=4:mem=16gb -l maple10p=1 tenplus.sh

and the file tenplus.sh looks as follows:

#!/bin/sh
# initialize the maple-10 module
module add maple-10
#run the maple
maple10p <inputdata

Maple 5

A historical version, primarily used because of its unlimited licenses (limited just to the use on Brno nodes). Once submitting a job, it is necessary to ask for a node located in Brno (there's no need to ask for a license reservation):

qsub -l select=1:ncpus=4:mem=16gb -l place=brno...