CoCalc Public Fileswww / talks / 2006-10-07-sagedays2 / current.texOpen with one click!
Author: William A. Stein
1
\documentclass[10pt]{beamer}
2
\include{macros}
3
4
\mode<presentation>
5
{
6
\usetheme{Warsaw}
7
\usecolortheme{rose}
8
%\usecolortheme{seahorse}
9
\setbeamercovered{transparent}
10
% or whatever (possibly just delete it)
11
}
12
13
14
\usepackage[english]{babel}
15
% or whatever
16
17
\usepackage[latin1]{inputenc}
18
% or whatever
19
20
\usepackage{times}
21
\usepackage[T1]{fontenc}
22
% Or whatever. Note that the encoding and the font should match. If T1
23
% does not look nice, try deleting the line with the fontenc.
24
25
26
\title{SAGE Days 2: Status Report and Future}
27
28
\author{William Stein}
29
30
% - Use the \inst command only if there are several affiliations.
31
% - Keep it simple, no one is interested in your street address.
32
33
\date[October 7] % (optional)
34
{\vspace{-6ex}
35
36
October 7, 2006,
37
UW\\
38
39
\includegraphics[width=17em]{sage-car.pdf}}
40
41
\subject{Talks}
42
43
% Delete this, if you do not want the table of contents to pop up at
44
% the beginning of each subsection:
45
\AtBeginSubsection[]
46
{
47
\begin{frame}<beamer>
48
\frametitle{Outline}
49
\tableofcontents[currentsection,currentsubsection]
50
\end{frame}
51
}
52
53
% If you wish to uncover everything in a step-wise fashion, uncomment
54
% the following command:
55
56
%\beamerdefaultoverlayspecification{<+->}
57
58
\begin{document}
59
60
\begin{frame}
61
\titlepage
62
\end{frame}
63
64
\begin{frame}
65
\frametitle{SAGE Days 2}
66
\begin{center}
67
{\Huge \dblue SAGE Days 2}
68
\vfill
69
{\tt http://sage.math.washington.edu/sage/days2}
70
\vfill
71
{\LARGE\dred Welcome!!}
72
\vfill
73
Talks Saturday-Sunday and coding sprints Friday, Monday, Tuesday.
74
\end{center}
75
\end{frame}
76
77
78
%\begin{frame}
79
% \frametitle{Outline}
80
%\Large
81
% \tableofcontents
82
% You might wish to add the option [pausesections]
83
%\end{frame}
84
85
86
\begin{frame}
87
\frametitle{History: to SAGE 1.4}
88
\large
89
\begin{itemize}
90
\item {\dblue 1997-1999:} Tons of C++
91
\item {\dblue 1999-2004:} Tons of MAGMA for research.
92
\item {\dblue Feb 2004:} Extreme frustration with MAGMA.
93
\item {\dblue Feb 2005:} I got job offers with {\dred tenure} -- {\em SAGE 0.1}
94
\item {\dblue April 2005:} {\dred Interfaces} to Mathematica, Magma, etc.
95
\item {\dblue Feb 2006:} SAGE Days 1 workshop -- {\dred SAGE 1.0}
96
\item {\dblue June 2006:} High school workshop -- {\dred SAGE Notebook }
97
\item {\dblue August 2006:} Grad student workshop -- two week super-intense {\em graduate
98
student} coding sprint.
99
\item {\dblue Today:} SAGE Days 2 -- SAGE now has a wide range of
100
functionality.
101
SAGE is {\em not stable} enough. It is
102
{\em not robust} enough. It {\em doesn't do what I want}, or what you want.
103
{\dred I want way way more. SOON!}
104
\end{itemize}
105
106
\end{frame}
107
108
%\section{Status}
109
\begin{frame}
110
\frametitle{The GOAL}
111
112
{\bf \large {\dblue GOAL:} Create high quality {\dred free} software
113
for algebra, number theory, and geometry. And don't neglect numerical
114
computation.}\vspace{-1ex}
115
116
\begin{center}
117
\includegraphics[width=0.6\textwidth]{sage-car.pdf}
118
\end{center}
119
120
\end{frame}
121
122
\begin{frame}
123
\frametitle{What is SAGE?}
124
{\Large
125
\begin{enumerate}
126
\item {\dred Distribution:} 63MB free open source tarball\vfill
127
\item {\dred New Code:} New algorithms; fill gaps\vfill
128
\item {\dred Interfaces:} To your software
129
\end{enumerate}
130
}
131
132
\vfill
133
\end{frame}
134
135
\begin{frame}[fragile]
136
\frametitle{SAGE is also a computer...}
137
\begin{center}
138
{\Large\dblue {\tt http://sage.math.washington.edu}}\\
139
\vfill
140
\includegraphics[width=0.6\textwidth]{sageserver.jpg}
141
\end{center}
142
\vfill
143
The SAGE ``sandbox'': {\dred 64GB RAM}, {\dblue 16 processor} Opteron
144
server. You can browse the developer working directories
145
over the web here!
146
\end{frame}
147
148
\begin{frame}
149
\frametitle{The SAGE Notebook: We now have a good GUI}
150
151
\begin{enumerate}
152
\item An {\dred ``AJAX application''} like Google maps or
153
Gmail, {\dblue but} can run locally on your computer.\vfill
154
\item {\dred Written from scratch} recently by me, Alex C. and Tom B.\vfill
155
\item Uses Python's built-in {\dred BaseHTTPServer} web server (we may
156
soon switch to Twisted for a more robust security model).
157
\vfill
158
\item Works well with Firefox, Safari, and Opera.\vfill
159
\item Client/server model which works {\dred over network} or locally. \vfill
160
\item Current version is {\dred stable and usable}. There is a big
161
idea list that will influence the next version.\vfill
162
\item Try it: {\tt http://sage.math.washington.edu:8100}
163
164
\end{enumerate}
165
\end{frame}
166
167
168
\begin{frame}[fragile]
169
\frametitle{New SAGE Code: SAGE is getting BIG}
170
Over 100000 lines of new Python and Pyrex code:
171
\small
172
\begin{verbatim}
173
algebras edu lfunctions monoids sets
174
categories ext libs plot structure
175
coding functions matrix quadratic_forms tests
176
combinat geometry misc rings
177
crypto groups modular schemes
178
databases interfaces modules server
179
180
UNIQUE Source Code Lines (including docstrings):
181
$ cat */*.py */*/*.py */*/*/*.py */*.pyx \
182
*/*/*.pyx */*/*.pyx |sort |uniq | wc -l
183
86102
184
185
UNIQUE Input Docstrings:
186
$ cat */*.py */*/*.py */*/*/*.py */*.pyx \
187
*/*/*.pyx */*/*.pyx |sort|uniq|grep "sage:" | wc -l
188
9612
189
\end{verbatim}
190
%Over 250 (of the about 1100) patches were not written by me.
191
\end{frame}
192
193
\begin{frame}
194
\frametitle{Core Components of SAGE: All Bases are Covered}
195
\begin{center}
196
\begin{tabular}{|l|l|}\hline
197
Basic Arithmetic & {\dred GMP, PARI, NTL} \\\hline
198
Command Line & {\dred IPython} \\\hline
199
Commutative algebra & {\dred Singular$^*$} \\\hline
200
Graphical Interface & {\dred SAGE Notebook} \\\hline
201
Graphics & {\dred Matplotlib, Tachyon} \\\hline
202
Group theory and combinatorics & {\dred GAP} \\\hline
203
Interpreted programming language & {\dred Python } \\\hline
204
Networking & {\dred Twisted} \\\hline
205
Numerical computation & {\dred GSL, Numeric, etc.} \\\hline
206
Source control system & {\dred Mercurial} \\\hline
207
Symbolic computation, calculus & {\dred Maxima} \\\hline
208
\end{tabular}
209
\vfill
210
To be a component of SAGE, the software must be:\\
211
{\dred free, open source,
212
robust, high quality, and build with GCC}\\
213
Nothing else should be included in the core SAGE package.
214
\end{center}
215
\end{frame}
216
217
\begin{frame}
218
\frametitle{Singular}
219
Singular includes a {\em very}
220
restrictively licensed component, namely omalloc. So far, it
221
appears that Singular crucially depends on omalloc in order to
222
build. This may be very nontrivial to get around since, e.g.,
223
omalloc is nearly 28000 lines. I am extremely angry at being
224
misled by the Singular website about this!! The omalloc license is
225
{\em terrible}:
226
\begin{quote}``Permission of use within the software SINGULAR is
227
granted by the author. In addition to this permission to modify the
228
sources is granted to the copyright holders of SINGULAR. If you
229
wish to {\dred use this package outside of SINGULAR} or {\dred to modify it in any
230
way}, please contact the author...''
231
\end{quote}
232
Thus omalloc is not allowed to
233
be used in software other than Singular, which could potentially
234
mean its use in SAGE is a violation. Moreover, one is not allowed
235
to "modify it in any way" (even for personal use!).
236
\end{frame}
237
238
\begin{frame}
239
\frametitle{Singular?: Options}
240
The options are:
241
\vfill
242
\begin{enumerate}
243
\item Find a way to {\dred remove} the
244
Singular dependence on omalloc (which is over 20000 lines of code!).
245
\item Get omalloc {\dred released} under a free open source license:
246
Email "Olaf Bachmann" <obachman@mathematik.uni-kl.de>.
247
\item {\dred Switch to Macaulay2} -- it builds easily for SAGE now
248
due to much hard work by Dan Grayson. Collaboration
249
between Macaulay2 and SAGE could be {\em extremely} productive,
250
and they have a lot of amazing algebraic geometry.
251
\end{enumerate}
252
\vfill
253
{\dblue Plan:} Try 1 and 2 until Oct 23. If they fail, do 3
254
(I will be at a workshop then with both of the Macaulay2 authors (Dan and Mike), which
255
would be an ideal time to do 3.) Many students at UW know Macaulay2.
256
\end{frame}
257
258
259
\begin{frame}
260
\frametitle{Distribution Model}
261
262
\vfill
263
Target Platforms: Linux, OS X, Windows (I have
264
given up on Solaris and Cygwin, for now).
265
\vfill
266
\begin{itemize}
267
\item {\dblue Linux} -- Build from source.
268
Still no good .dep and .rpm's. Part of why is not just deciding to
269
make something that install to /opt.
270
\vfill
271
272
\item {\dblue OS X $\geq $10.4.x} -- Build from source. Precompiled binaries.
273
\vfill
274
275
\item {\dblue Windows} -- {\dred Colinux as kernel is a
276
reasonable solution}. Gary Zablackis does a great job maintaining this branch.
277
278
\vfill
279
\end{itemize}
280
\end{frame}
281
282
283
284
285
286
%\begin{frame}
287
%\frametitle{What is included in SAGE?}
288
%\begin{enumerate}
289
%\item {\dblue Standard packages:}\\
290
%cddlib, {\dred clisp}, conway\_polynomials, cremona\_mini,
291
%doc, ecm, freetype, gap,
292
%genus2reduction, gfan, givaro, {\dred gmp}, {\dred gnuplotpy},
293
%{\dred ipython}, lcalc, libpng, {\dred matplotlib}, {\dred maxima},
294
%{\dred mpfr}, mwrank, ntl, {\dred numeric}, pari, {\dred pexpect},
295
%{\dred pyrex}, {\dred pyrexembed}, {\dred python}, readline,
296
%singular, sympow, tachyon, termcap, zlib, {\dred zodb3}
297
%\item {\dblue Optional Packages: {\tt sage -i package\_name}}\\
298
%darcs, database\_cremona\_ellcurve,
299
%database\_gap, database\_jones\_numfield,
300
%database\_kohel, database\_odlyzko\_zeta, database\_sloane\_oeis,
301
%database\_stein\_watkins\_mini, {\dred dvipng}, extra\_docs, gap\_packages,
302
%gd, {\dred gnuplot}, hermes, kash3\_linux, kash3\_osx, lie, linbox,
303
%macaulay2, {\dred mayavi}, {\dred moin (wiki)}, {\dred numarray},
304
%{\dred numpy}, nzmath, polymake,
305
%pygtk, RealLib3, {\dred scipy}, {\dred soya}
306
%\end{enumerate}
307
%\end{frame}
308
309
310
\begin{frame}
311
\frametitle{Goals for SAGE 2.0}
312
{\Large Main Goals for SAGE 2.0 -- December 2006}
313
\vfill
314
\large
315
\begin{enumerate}
316
\item Make the {\dred basic arithmetic}, e.g., finite fields, polynomials, etc.,
317
very fast.
318
\vfill
319
\item Make the {\dred everyday {\em exact} linear algebra} very fast.
320
\vfill
321
\item {\dred Usability:} Notebook, Pyrex introspection, Documentation browser, Graphics.
322
\vfill
323
\item {\dred Stability:}
324
\begin{enumerate}
325
\item SAGE is {\dblue not ready for stability} today (timing isn't right).
326
\item {\dblue Fast robust arithmetic} is crucially important, so we have
327
to finish that ASAP. Stabilize only on a proven design choice.
328
\item {\dblue SEP}: SAGE Enhancement Proposal (like Python's PEP's) --
329
will be required after SAGE 2.0.
330
\end{enumerate}
331
\vfill
332
333
\end{enumerate}
334
\end{frame}
335
336
\begin{frame}
337
\frametitle{Next Year (2007) -- SAGE 3.0}
338
\large
339
\begin{enumerate}
340
\item {\dred Parallelism:} Support for {\dblue coarse grain parallelism} and use of
341
it for algorithms in algebra, geometry, and number theory.
342
I'm organizing {\dred workshop in January} at MSRI on this,
343
hopefully followed by a series of 2-week coding
344
sprints through the year.
345
\vfill
346
\item {\dred Higher level algorithms}, e.g., computing with modular
347
abelian varieties, quaternion
348
algebra ideal theory, Hilbert modular forms, etc.
349
\vfill
350
\end{enumerate}
351
\end{frame}
352
353
\begin{frame}
354
\frametitle{Funding Sources}
355
\begin{enumerate}
356
\item My {\dblue Startup} Money.\vfill
357
\item My 3-year {\dblue NSF grant}, if I can move it from UCSD. \vfill
358
\item {\dblue Apply} to the NSF, e.g., I'm applying for an {\dblue undergraduate program} right now.\vfill
359
\item Friends in high places.
360
\vfill
361
\item Create a {\dblue SAGE Mathematics Foundation}.
362
\vfill
363
\item A {\dred major expense} is workshops--- apply to AIM, MSRI, Banff, IMA, etc.,
364
for another SAGE Days!
365
\end{enumerate}
366
\end{frame}
367
368
\begin{frame}
369
\frametitle{Mercurial: SAGE's Source Control System}
370
\begin{enumerate}
371
\item {\dblue Written in Python} -- crucial for long-term integration into SAGE
372
(it's 15000 lines of code).
373
\vfill
374
\item {\dblue VERY FAST and ROBUST}
375
\vfill
376
\item {\dblue Active Development Community}
377
\vfill
378
\item From SAGE: {\tt hg\_sage.[tab]}
379
\vfill
380
\item From command line: {\tt sage -hg [args]} or use {\tt install\_scripts}
381
\vfill
382
\item Quick {\dblue tutorial} if time permits:
383
Create a hello world patch and bundle it.
384
\end{enumerate}
385
\end{frame}
386
387
\begin{frame}[fragile]
388
\frametitle{Python 2.5!}
389
\begin{enumerate}
390
\item {\dblue list indices}: {\tt \_\_index\_\_} method; This means {\tt n=2; [1,2,3,4][n]} finally works!!
391
Thanks to Travis Oliphant.
392
\item {\dblue Optimizations} -- "Several of the optimizations were developed at the
393
NeedForSpeed sprint, an event held in Reykjavik, Iceland, from May 21-28 2006."
394
E.g., "Exception handling in Python 2.5 is therefore about 30% faster than in 2.4."
395
\item {\dblue Memory management} is improved
396
\item {\dblue ctypes} is included standard
397
\item {\dblue conditional expressions} {\tt x = true\_value if condition else false\_value}
398
context managers: relevant to all the discussion about precision
399
lately.
400
\item {\dblue any and all} -- new builtins:
401
\begin{verbatim}
402
sage: any(is_prime(x) for x in range(114,125))
403
False
404
sage: all(is_prime(x) for x in prime_range(50,100))
405
True
406
\end{verbatim}
407
\end{enumerate}
408
\end{frame}
409
410
\begin{frame}
411
\frametitle{Upcoming Relevant Events}
412
\begin{itemize}
413
\item {\dblue October 23--27}: I'm speaking about SAGE at an IMA "Software in
414
Algebraic Geometry" in Minnesota later this month.
415
\item {\dblue Jan 29--Feb 2}: MSRI Workshop on Interactive Parallel Computation -- I'm chair
416
of organizing committee.
417
\item {\dblue March 10--14, 2007}: Arizona Winter School (I'm a co-organizer). David Savitt is the organizer.
418
\item {\dblue June 3--8, 2007}: Banff workshop on modular forms computation -- I'm an organizer
419
\item {\dblue July 30-Aug 3, 2007}: AIM: Workshop on Modular Forms and L-functions -- I'm an organizer
420
\end{itemize}
421
\end{frame}
422
423
\begin{frame}
424
\vfill
425
\LARGE
426
\begin{center}
427
\includegraphics[width=.7\textwidth]{tag.png}
428
429
\vfill
430
\dgreen
431
Mathematics Software for Everybody!
432
\vfill
433
434
\dblue
435
\end{center}
436
437
\end{frame}
438
439
440
\end{document}
441
442
443