by Luca De Feo
Project review – 3rd reporting period
User Interfaces / Collaborative workspaces
(Jupyter, Simulagora, CoCalc, Google Colab, ...)
↓
————————————————————————————————————————————————————
Kernels
(Python, GAP, MMT, PARI/GP, SageMath, Singular, ...)
↓ ↓
Modules, Libraries Database
(LinBox, MPIR, ...) (LMFDB, MathHub, ....)
————————————————————————————————————————————————————
"Adrian is a student in Applied Algebra. For his Cryptography course, he programs elliptic curve cryptography in SageMath on his Windows laptop."
Betty is a researcher in Number Theory. Her group owns a powerful Debian Linux compute server. She wants to query data on modular forms from LMFDB and compute integral bases for their Hecke fields using PARI/GP.
Charlie teaches Group Theory in a Masters program. He wants to evolve his group's old school compute server into a browser-based VRE for his students to work on a collaborative assignment based on GAP.
Dominique is an engineer at CNRS, she wants to set-up a Jupyter service on her national infrastructure for a large research project needing an HPC cluster.
WP3 is about the plumbing necessary to make all these deployments possible... supported by documentation, tutorials, instructibles, and interaction with the communities:
Aim 2: Make it easy for teams of researchers of any size to set up custom, collaborative Virtual
Research Environments tailored to their specific needs, resources and workflows. The VRE should support the entire life-cycle of computational work in mathematical research, from initial exploration to publication, teaching and outreach.
Actions:
Milestone 5: “ODK’s computational components available on major platforms” (month 42).
User story: users shall be able to easily install ODK’s computational components on the three major platforms (Windows, Mac, Linux) via their standard distribution channels.
import requests, json, io
from PIL import Image
from matplotlib import pyplot as plt
import matplotlib.ticker as mtick
from datetime import date
Based upon voluntary reports from ~30k users
arch_url = 'https://pkgstats.archlinux.de/api/packages/%s/series?startMonth=%s&endMonth=%s'
start, end = '201509', '201908'
systems = ['jupyter', 'pari', 'singular', 'gap', 'sagemath', 'scilab-bin']#, 'chromium', 'firefox']
stats = { s: requests.get(arch_url % (s, start, end)).json() for s in systems }
fig = plt.figure(1, (10,5)); ax = fig.add_subplot(1,1,1); ax.yaxis.set_major_formatter(mtick.PercentFormatter())
for s in systems:
data = [(date(int(m['startMonth'] // 100), int(m['startMonth'] % 100), 1),
m['count']/m['samples']*100)
for m in stats[s]['packagePopularities']]
ax.plot(*zip(*data), label=s)
ax.legend(title="Arch package statistics")
<matplotlib.legend.Legend at 0x7facf1901a10>
Based on ~200K voluntary submissions
deb_url = 'https://qa.debian.org/cgi-bin/popcon-data?packages=%s;from_date=%s;to_date=%s'
start, end = '2015-09-01', '2019-08-31'
systems = 'jupyter-notebook scilab pari-gp gap singular sagemath'
stats = requests.get(deb_url % (systems, start, end)).json()
fig = plt.figure(1, (10,5)); ax = fig.add_subplot(1,1,1); ax.yaxis.set_major_formatter(mtick.PercentFormatter())
for s in systems.split():
data = [(date.fromisoformat(d), (v['vote'] + v['old'] + v['recent'] + v['no_files']) / 2000)
for d,v in stats[s].items()]
data.sort(key=lambda a : a[0])
ax.plot(*zip(*data), label=s)
ax.legend(title='Debian package statistics')
<matplotlib.legend.Legend at 0x7facf1722510>
% of Jupyter users are also OpenDreamKit users:
This percentages are decreasing, because popularity of Jupyter is increasing faster than popularity of (already well established) mathematical software.
https://anaconda.org/conda-forge/gap, https://anaconda.org/conda-forge/pari, https://anaconda.org/conda-forge/sage/, https://anaconda.org/conda-forge/singular
gap
pari
sage
and singular
Compare with https://anaconda.org/conda-forge/notebook, which states 2M downloads for jupyter
.
Objective 8: Demonstrate the effectiveness of Virtual Research Environments built on top of OpenDreamKit components for
a number of real-world use cases that traverse domains.
D3.11: HPC enabled SageMath distribution
Exposing parallel features of WP5 through a single runtime API
Code quality
User contributed code
Distribution
OpenDreamKit has lifted to the horizon 2020 mathematical software that is as much as 40 years old! This would have been
Software that lives its own life is bound to become a unicorn or die.
Open source software thrives in shared responsibility, is durable by design.