36
Singular – A computer algebra system for polynomial computations Christian Eder University of Kaiserslautern June 29, 2011 1 / 16

Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

Singular – A computer algebra system forpolynomial computations

Christian Eder

University of Kaiserslautern

June 29, 2011

1 / 16

Page 2: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

The following section is about

1 What is Singular?

2 How to get Singular?

3 Singular community

4 Recent developments in Singular

2 / 16

Page 3: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

What is Singular?

Singular

I is a computer algebra system for polynomial computations.

I has a special emphasis on commutative and non-commutativealgebra, algebraic geometry, and singularity theory.

I is free and open-source under the GPL.

3 / 16

Page 4: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

What is Singular?

Singular

I is a computer algebra system for polynomial computations.

I has a special emphasis on commutative and non-commutativealgebra, algebraic geometry, and singularity theory.

I is free and open-source under the GPL.

3 / 16

Page 5: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

What is Singular?

Singular

I is a computer algebra system for polynomial computations.

I has a special emphasis on commutative and non-commutativealgebra, algebraic geometry, and singularity theory.

I is free and open-source under the GPL.

3 / 16

Page 6: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

What is Singular?

Singular provides

I highly efficient core algorithms,

I an intuitive, C-like high-level programming language,

I easy ways to make it user-extendible through libraries,

I a comprehensive online manual and help function.

4 / 16

Page 7: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

What is Singular?

Singular provides

I highly efficient core algorithms,

I an intuitive, C-like high-level programming language,

I easy ways to make it user-extendible through libraries,

I a comprehensive online manual and help function.

4 / 16

Page 8: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

What is Singular?

Singular provides

I highly efficient core algorithms,

I an intuitive, C-like high-level programming language,

I easy ways to make it user-extendible through libraries,

I a comprehensive online manual and help function.

4 / 16

Page 9: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

What is Singular?

Singular provides

I highly efficient core algorithms,

I an intuitive, C-like high-level programming language,

I easy ways to make it user-extendible through libraries,

I a comprehensive online manual and help function.

4 / 16

Page 10: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

What is Singular?

Singular’s core algorithms handle

I Grobner resp. standard bases and free resolutions,

I polynomial factorization,

I resultants, characteristic sets, and numerical root finding.

Singular’s advanced algorithms are contained in more than 90libraries, written in a high-level programming language, handle

I primary decomposition,

I resolution of singularities,

I normalization,

I absolute factorization, classification of singularities,deformation theory, Gauss-Manins systems, Hamburg-Noether(Puiseux) development, invariant theory, (non-)commutativehomological algebra, and many more.

5 / 16

Page 11: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

What is Singular?

Singular’s core algorithms handle

I Grobner resp. standard bases and free resolutions,

I polynomial factorization,

I resultants, characteristic sets, and numerical root finding.

Singular’s advanced algorithms are contained in more than 90libraries, written in a high-level programming language, handle

I primary decomposition,

I resolution of singularities,

I normalization,

I absolute factorization, classification of singularities,deformation theory, Gauss-Manins systems, Hamburg-Noether(Puiseux) development, invariant theory, (non-)commutativehomological algebra, and many more.

5 / 16

Page 12: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

What is Singular?

Singular’s core algorithms handle

I Grobner resp. standard bases and free resolutions,

I polynomial factorization,

I resultants, characteristic sets, and numerical root finding.

Singular’s advanced algorithms are contained in more than 90libraries, written in a high-level programming language, handle

I primary decomposition,

I resolution of singularities,

I normalization,

I absolute factorization, classification of singularities,deformation theory, Gauss-Manins systems, Hamburg-Noether(Puiseux) development, invariant theory, (non-)commutativehomological algebra, and many more.

5 / 16

Page 13: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

What is Singular?

Singular’s core algorithms handle

I Grobner resp. standard bases and free resolutions,

I polynomial factorization,

I resultants, characteristic sets, and numerical root finding.

Singular’s advanced algorithms are contained in more than 90libraries, written in a high-level programming language, handle

I primary decomposition,

I resolution of singularities,

I normalization,

I absolute factorization, classification of singularities,deformation theory, Gauss-Manins systems, Hamburg-Noether(Puiseux) development, invariant theory, (non-)commutativehomological algebra, and many more.

5 / 16

Page 14: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

What is Singular?

Singular’s core algorithms handle

I Grobner resp. standard bases and free resolutions,

I polynomial factorization,

I resultants, characteristic sets, and numerical root finding.

Singular’s advanced algorithms are contained in more than 90libraries, written in a high-level programming language, handle

I primary decomposition,

I resolution of singularities,

I normalization,

I absolute factorization, classification of singularities,deformation theory, Gauss-Manins systems, Hamburg-Noether(Puiseux) development, invariant theory, (non-)commutativehomological algebra, and many more.

5 / 16

Page 15: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

What is Singular?

Singular’s core algorithms handle

I Grobner resp. standard bases and free resolutions,

I polynomial factorization,

I resultants, characteristic sets, and numerical root finding.

Singular’s advanced algorithms are contained in more than 90libraries, written in a high-level programming language, handle

I primary decomposition,

I resolution of singularities,

I normalization,

I absolute factorization, classification of singularities,deformation theory, Gauss-Manins systems, Hamburg-Noether(Puiseux) development, invariant theory, (non-)commutativehomological algebra, and many more.

5 / 16

Page 16: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

What is Singular?

Singular’s core algorithms handle

I Grobner resp. standard bases and free resolutions,

I polynomial factorization,

I resultants, characteristic sets, and numerical root finding.

Singular’s advanced algorithms are contained in more than 90libraries, written in a high-level programming language, handle

I primary decomposition,

I resolution of singularities,

I normalization,

I absolute factorization, classification of singularities,deformation theory, Gauss-Manins systems, Hamburg-Noether(Puiseux) development, invariant theory, (non-)commutativehomological algebra, and many more.

5 / 16

Page 17: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

What is Singular?

Singular’s core algorithms handle

I Grobner resp. standard bases and free resolutions,

I polynomial factorization,

I resultants, characteristic sets, and numerical root finding.

Singular’s advanced algorithms are contained in more than 90libraries, written in a high-level programming language, handle

I primary decomposition,

I resolution of singularities,

I normalization,

I absolute factorization, classification of singularities,deformation theory, Gauss-Manins systems, Hamburg-Noether(Puiseux) development, invariant theory, (non-)commutativehomological algebra, and many more.

5 / 16

Page 18: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

The following section is about

1 What is Singular?

2 How to get Singular?

3 Singular community

4 Recent developments in Singular

6 / 16

Page 19: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

How to get Singular?

http://www.singular.uni-kl.de

I binaries for Linux, Mac, and Windows (via cygwin)

I sources to compile

I nightly builds of developer version

Sage uses Singular for its polynomial arithmetic and Grobnerbases computations.

7 / 16

Page 20: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

How to get Singular?

http://www.singular.uni-kl.de

I binaries for Linux, Mac, and Windows (via cygwin)

I sources to compile

I nightly builds of developer version

Sage uses Singular for its polynomial arithmetic and Grobnerbases computations.

7 / 16

Page 21: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

The following section is about

1 What is Singular?

2 How to get Singular?

3 Singular community

4 Recent developments in Singular

8 / 16

Page 22: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

Active community

I http://www.singular.uni-kl.de/forum

Great community – newbies up to experts

I http://www.singular.uni-kl.de:8002/trac

Give notice of bugs, propose new feature

I http://www.singular.uni-kl.de/.../open-tasks.html

Direct feedback of open tasks and ongoing developments

9 / 16

Page 23: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

Active community

I http://www.singular.uni-kl.de/forum

Great community – newbies up to experts

I http://www.singular.uni-kl.de:8002/trac

Give notice of bugs, propose new feature

I http://www.singular.uni-kl.de/.../open-tasks.html

Direct feedback of open tasks and ongoing developments

9 / 16

Page 24: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

Active community

I http://www.singular.uni-kl.de/forum

Great community – newbies up to experts

I http://www.singular.uni-kl.de:8002/trac

Give notice of bugs, propose new feature

I http://www.singular.uni-kl.de/.../open-tasks.html

Direct feedback of open tasks and ongoing developments

9 / 16

Page 25: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

The following section is about

1 What is Singular?

2 How to get Singular?

3 Singular community

4 Recent developments in Singular

10 / 16

Page 26: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

Directions

I Facilitate interaction with other software packages

� libsingular

� communication interfaces (tropical geometry, toric geometry,group theory, etc.)

� links, e.g. SCSCP from SCIENCE project

I More flexibility/functionality for library programmers

� user defined data types� Python interface� GAP interface (Groups, Algorithms, and Programming)

11 / 16

Page 27: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

Directions

I Facilitate interaction with other software packages

� libsingular

� communication interfaces (tropical geometry, toric geometry,group theory, etc.)

� links, e.g. SCSCP from SCIENCE project

I More flexibility/functionality for library programmers

� user defined data types� Python interface� GAP interface (Groups, Algorithms, and Programming)

11 / 16

Page 28: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

Restructuring Singular

I Complete restructure of the Singular kernel

� easier build process� better documentation� more intuitive

I Library functionality for different levels

� libpoly

� libgroebner

� etc.

12 / 16

Page 29: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

Restructuring Singular

I Complete restructure of the Singular kernel

� easier build process� better documentation� more intuitive

I Library functionality for different levels

� libpoly

� libgroebner

� etc.

12 / 16

Page 30: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

Parallelization – Current

There are two different ways to achieve parallelization of yoursoftware

I different processes, and

I different threads.

Currently Singular can only use different processes.

I communication slower than in the threaded world ⇒ improvedand extended link interface

I no data corruption possible

Useful situations:

I big tasks

I modular computations, e.g. modstd, primDecZ, and modularprimary decomposition

13 / 16

Page 31: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

Parallelization – Current

There are two different ways to achieve parallelization of yoursoftware

I different processes, and

I different threads.

Currently Singular can only use different processes.

I communication slower than in the threaded world ⇒ improvedand extended link interface

I no data corruption possible

Useful situations:

I big tasks

I modular computations, e.g. modstd, primDecZ, and modularprimary decomposition

13 / 16

Page 32: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

Parallelization – Current

There are two different ways to achieve parallelization of yoursoftware

I different processes, and

I different threads.

Currently Singular can only use different processes.

I communication slower than in the threaded world ⇒ improvedand extended link interface

I no data corruption possible

Useful situations:

I big tasks

I modular computations, e.g. modstd, primDecZ, and modularprimary decomposition

13 / 16

Page 33: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

Parallelization – Future

Implementation of parallel.lib for different processes

I basic framework for modular computations

I networks

I worker farms, etc.

What’s about thread-safeness?

I Redesign of Singular’s highly-optimized special-purposememory manager

I Combining multiple threads and processes

I Dynamic action handler

14 / 16

Page 34: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

Parallelization – Future

Implementation of parallel.lib for different processes

I basic framework for modular computations

I networks

I worker farms, etc.

What’s about thread-safeness?

I Redesign of Singular’s highly-optimized special-purposememory manager

I Combining multiple threads and processes

I Dynamic action handler

14 / 16

Page 35: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

Future Grobner basis algorithms

I signature-based algorithms, e.g. F5, G2V

I F4-like Gaussian Elimination for reduction steps

I recent research

I parallelized, more dynamic

15 / 16

Page 36: Singular A computer algebra system for polynomial …I is a computer algebra system for polynomial computations. I has a special emphasis on commutative and non-commutative algebra,

Thank you for your attention!

16 / 16