Top Menu

Jump to content
Home
    • Projects
    • Work packages
    • News
    • Getting started
    • Introduction video
      Welcome to GWDG OpenProject
      Get a quick overview of project management and team collaboration with OpenProject. You can restart this video from the help menu.

    • Help and support
    • User guides
    • Videos
    • Shortcuts
    • Community forum
    • Professional support

    • Additional resources
    • Data privacy and security policy
    • Digital accessibility (DE)
    • OpenProject website
    • Security alerts / Newsletter
    • OpenProject blog
    • Release notes
    • Report a bug
    • Development roadmap
    • Add and edit translations
    • API documentation
  • Sign in
      AcademicID

Side Menu

  • Overview
  • Work packages
  • News
  • Forums
  • Wiki
    • Table of contents
      • Expanded. Click to collapseCollapsed. Click to showWiki
        • Hierarchy leafAlle alten Seiten
        • Expanded. Click to collapseCollapsed. Click to showSysteme
          • Expanded. Click to collapseCollapsed. Click to showILIAS
            • Hierarchy leafSetup-Maxima-Server-Connection
          • Expanded. Click to collapseCollapsed. Click to showSTACK
            • Hierarchy leafMaxima-STACK-Server
            • Hierarchy leafPerformance Measurement goemaxima-container
        • Expanded. Click to collapseCollapsed. Click to showTreffen
          • Hierarchy leaf2022-07-15 Goettingen
You are here:
  • Wiki
  • Systeme
  • STACK
  • Maxima-STACK-Server

Content

Maxima-STACK-Server

  • More
    • Print
    • Table of contents
  • 1Maintanced: goemaxima cluster with kubernetes
    • 1.1The goemaxima Server
    • 1.2goemaxima Cluster GWDG Goettingen
      • 1.2.1Matching table ILIAS/Moodle-Version - goemaxima-URL
      • 1.2.2Status Website
    • 1.3goemaxima Cluster Math. Institut Goettingen (until 30th April 2023)
      • 1.3.1Matching table ILIAS/Moodle-Version - goemaxima-URL
    • 1.4Docker Image
      • 1.4.1Image Source
    • 1.5Some-Hints
      • 1.5.1Support
      • 1.5.2Setup-Maxima-Server-Connection
      • 1.5.3Cluster-not-reachable
    • 1.6Deprecated-Public-Maxima-Pool-with-DockerSwarm
      • 1.6.1Depricated-MaximaPool-Docker-Image-Mathematisches-Institut-University-Goettingen

Maintanced: goemaxima cluster with kubernetes

Due to a limitation with autoscaling and forwarding POST parameters, each stack version has its own URL.
Generally, the format of the URL is STACKMAXIMA-VERSION.maxima.math.uni-goettingen.de/SERVER-VERSION, where STACKMAXIMA-VERSION corresponds to the version of stackmaxima and SERVER-VERSION is either goemaxima or MaximaPool.

The goemaxima Server

The goemaxima server is our own, homegrown implementation of the MaximaPool API.
It is written in go and has less startup time and memory utilization than the java implementation.

Internally, it works by forking new maxima processes from an initial mother process instead of starting a new one each time, saving startup time and memory (because the memory is shared between the forked maximas). goemaxima is using precompiled maxima.

It is put into a docker container so that it can be used by kubernetes.
For security, each forked process gets its own user and after execution, every process with a given user is killed.
Also, in the kubernetes cluster outbound internet access is disabled for processes in the container.

It has been tested both on ilias and moodle and seems to work without problems.

goemaxima Cluster GWDG Goettingen

The GWDG Goettingen (https://gwdg.de) offers IT-services for the Univerisity Goettingen and the Max-Planck Society Germany. Further on members and associates of other universities in Lower Saxony, national universities outside of Lower Saxony or other institutions in the aerea of research or education are allowed to use the services by special arrangements. The GWDG will offer an goemaxima cluster for universities and schools according to special arrangements. The goemaxima cluster of the GWDG is reachable for testing. Since 15th of February 2023 all requests to the cluster maxima.math.uni-goettingen.de will be served by stack-maxima.service.rancher.gwdg.de. maxima.math.uni-goettingen.de will be renamed to maxima2.math.uni-goettingen.de and run until 30th of April 2023 as backup. A maximapool instance is not supported on the GWDG cluster.

Matching table ILIAS/Moodle-Version - goemaxima-URL

Here is a table of stack/ilias versions and the corresponding server URLs:

--------------- ---------------------- ------------------- ----------------------------------------------------------
 Ilias Version  Moodle Stack Version   Stackmaxima Build   goemaxima
 -              4.2.1                  2018080600          `stack-maxima.service.rancher.gwdg.de/2018080600/goemaxima`
 6-or-7         4.2.2a                 2019090200          `stack-maxima.service.rancher.gwdg.de/2019090200/goemaxima`
 -              4.3.1                  2020042000          `stack-maxima.service.rancher.gwdg.de/2020042000/goemaxima`
 -              4.3.2                  2020052700          `stack-maxima.service.rancher.gwdg.de/2020052700/goemaxima`
 -              4.3.3                  2020061000          `stack-maxima.service.rancher.gwdg.de/2020061000/goemaxima`
 -              4.3.4                  2020070100          `stack-maxima.service.rancher.gwdg.de/2020070100/goemaxima`
 -              4.3.6                  2020100900          `stack-maxima.service.rancher.gwdg.de/2020100900/goemaxima`
 -              4.3.7                  2020101501          `stack-maxima.service.rancher.gwdg.de/2020101501/goemaxima`
 -              4.3.8                  2020120600          `stack-maxima.service.rancher.gwdg.de/2020120600/goemaxima`
 7-DEV          4.3.10                 2021120900          `stack-maxima.service.rancher.gwdg.de/2021120900/goemaxima`
 -              4.3.11                 2022060100          `stack-maxima.service.rancher.gwdg.de/2022060100/goemaxima`
 -              4.4.0                  2022071300          `stack-maxima.service.rancher.gwdg.de/2022071300/goemaxima`
 -              4.4.1                  2022082900          `stack-maxima.service.rancher.gwdg.de/2022082900/goemaxima`
 -              4.4.2                  2023010400          `stack-maxima.service.rancher.gwdg.de/2023010400/goemaxima`

 --------------- ---------------------- ------------------- ---------------------------------------------------------

Status Website

This website shows the actual status of the Maxima-STACK-Cluster. https://www.uni-math.gwdg.de/koospal/website/stackcluster/stackcluster.txt

goemaxima Cluster Math. Institut Goettingen (until 30th April 2023)

Matching table ILIAS/Moodle-Version - goemaxima-URL

Here is a table of stack/ilias Moodel versions and the corresponding server URLs:

 --------------- ---------------------- ------------------- ------------------------------------------------------- ------------------------------------------------------
  Ilias Version  Moodle Stack Version   Stackmaxima Build   MaximaPool                                              goemaxima
  5.3-or-5.4      -                     2017121800          `2017121800.maxima2.math.uni-goettingen.de/MaximaPool`   `2017121800.maxima2.math.uni-goettingen.de/goemaxima`
  -              4.2.1                  2018080600          `2018080600.maxima2.math.uni-goettingen.de/MaximaPool`   `2018080600.maxima2.math.uni-goettingen.de/goemaxima`
  6-or-7         4.2.2a                 2019090200          `2019090200.maxima2.math.uni-goettingen.de/MaximaPool`   `2019090200.maxima2.math.uni-goettingen.de/goemaxima`
  -              4.3.1                  2020042000          `2020042000.maxima2.math.uni-goettingen.de/MaximaPool`   `2020042000.maxima2.math.uni-goettingen.de/goemaxima`
  -              4.3.2                  2020052700          -                                                       `2020052700.maxima2.math.uni-goettingen.de/goemaxima`
  -              4.3.3                  2020061000          -                                                       `2020061000.maxima2.math.uni-goettingen.de/goemaxima`
  -              4.3.4                  2020070100          -                                                       `2020070100.maxima2.math.uni-goettingen.de/goemaxima`
  -              4.3.6                  2020100900          -                                                       `2020100900.maxima2.math.uni-goettingen.de/goemaxima`
  -              4.3.7                  2020101501          -                                                       `2020101501.maxima2.math.uni-goettingen.de/goemaxima`
  -              4.3.8                  2020120600          -                                                       `2020120600.maxima2.math.uni-goettingen.de/goemaxima`
  7-DEV          4.3.10                 2021120900          -                                                       `2021120900.maxima2.math.uni-goettingen.de/goemaxima`
  -              4.3.11                 2022060100          -                                                       `2022060100.maxima2.math.uni-goettingen.de/goemaxima`
  -              4.4.0                  2022071300          -                                                       `2022071300.maxima2.math.uni-goettingen.de/goemaxima`
  -              4.4.1                  2022082900          -                                                       `2022082900.maxima2.math.uni-goettingen.de/goemaxima`
  -              4.4.2                  2023010400          -                                                       `2023010400.maxima2.math.uni-goettingen.de/goemaxima`

  --------------- ---------------------- ------------------- ------------------------------------------------------- ------------------------------------------------------

Docker Image

The Docker images are available on the docker hub at mathinstitut/goemaxima:[STACKMAXIMA-VERSION]-latest where [STACKMAXIMA-VERSION] is replaced with the corresponding stackmaxima version found in the table above. You can run the docker image with
docker run --restart always --tmpfs /tmp -p [HOSTPORT]:8080 mathinstitut/goemaxima:[STACKMAXIMA-VERSION]-latest
where [STACKMAXIMA-VERSION] is again the version and [HOSTPORT] is the host and port separated by a colon.
For example, if you were to deploy goemaxima with stackmaxima version 2020070100 on port 80 of host 192.0.2.10, one would run
docker run --restart always -p 192.0.2.10:80:8080 mathinstitut/goemaxima:2020070100-latest.
The URL that would be input into stack is then http://192.0.2.10:80/maxima/ (including the trailing slash).

In the docker image, the libraries stats, distrib, descriptive, simplex are loaded.

Some Prometheus statistics are exported on /metrics, and some debug information can be logged by setting the environment variable GOEMAXIMA_DEBUG=1.

Image Source

The source is available at https://github.com/mathinstitut/goemaxima.

Some-Hints

Support

Via work packages: https://projects.academiccloud.de/projects/netzwerk-mathe-digital/work_packages Everybody, logged in at Academic Cloud, can do this. Please adjust yout notifications to get all the messages about your work packages: https://projects.academiccloud.de/my/notifications

Setup-Maxima-Server-Connection

  • ILIAS

Cluster-not-reachable

Each URL from the table above gives an answer:

> curl http://2017121800.maxima.math.uni-goettingen.de/goemaxima
Hostname: maxima-2017121800-i5zw4y-helmgomaxima-945c89d68-fgvzf, version: 1.1.0

First check this with curl on the command line of your ILIAS- or Moodle-Installation.
If this not work you either has problem with DNS or with a firewall. Port 80 has to be open for requests from your machine.

If it works but not from the setup in ILIAS or Moodle, there is a problem with DNS in php.
Perhaps the user running ILIAS or Moodle can not read /etc/resolv.conf because this name is a link to an other file.

Deprecated-Public-Maxima-Pool-with-DockerSwarm

Note: this domain should no longer be used and will be shut down some time in the future

http://maxima.uni-math.gwdg.de:8765/MaximaPool/MaximaPool

We are going to use Kubernetes to scale dynamicly and to avoid DockerSwarm Bugs.
We can map on request this address to a address in Kubernetes but we prefer if you use the new address sheme.

Depricated-MaximaPool-Docker-Image-Mathematisches-Institut-University-Goettingen

The docker image follows the image of University Halle
(https://github.com/uni-halle/maximapool-docker/tree/stack-2017121800).

The image works with
Stack 2017121800
Maxima 5.41.0-Linux

You can start the image on a local server with amd64 architecture using the following command:

docker run -d --name "pool" --rm -e MAXIMAPOOL_ADMIN_PASSWORD=TEST123 -p IP:8765:8080 mathinstitut/pool_amd64:latest

$IP means address of a network interface
http://:8765$IP/MaximaPool/MaximaPool

Loading...