Bakul Shah wrote a particularly elegant Scheme program for Chudnovskys'
algorithm for pi based on the Common Lisp program here:
https://bitbucket.org/tarballs_are_good/numericl/src/5fe8fe7089f48ab1c8a388…
Nick Craig-Wood wrote a Python program using the GMP multiprecision
library that appears to use exactly the same algorithm here:
http://www.craig-wood.com/nick/articles/pi-chudnovsky/
I modified both programs a bit and include them here.
They time the calculation of $10^n$ digits of pi for $n=1,2,3,4,5,6,7$.
The results are
heine:~/programs/gambiteer/gambit> !py
python pi_chudnovsky_bs_gmpy.py
31415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
('chudnovsky_gmpy_mpz_bs: digits', 10, 'time', 1.0967254638671875e-05)
('chudnovsky_gmpy_mpz_bs: digits', 100, 'time', 3.0040740966796875e-05)
Last 5 digits 70679 OK
('chudnovsky_gmpy_mpz_bs: digits', 1000, 'time', 0.00025582313537597656)
Last 5 digits 01989 OK
('chudnovsky_gmpy_mpz_bs: digits', 10000, 'time', 0.00386810302734375)
Last 5 digits 75678 OK
('chudnovsky_gmpy_mpz_bs: digits', 100000, 'time', 0.0834801197052002)
Last 5 digits 24646 OK
('chudnovsky_gmpy_mpz_bs: digits', 1000000, 'time', 1.655979871749878)
Last 5 digits 58151 OK
('chudnovsky_gmpy_mpz_bs: digits', 10000000, 'time', 30.67442488670349)
Last 5 digits 55897 OK
heine:~/programs/gambiteer/gambit> gsi chud1.scm
Chudnovsky's algorithm using binary splitting in Gambit Scheme: digits
10, CPU time: 0..
Last 5 digits 26535.
Chudnovsky's algorithm using binary splitting in Gambit Scheme: digits
100, CPU time: 0..
Last 5 digits 70679.
Chudnovsky's algorithm using binary splitting in Gambit Scheme: digits
1000, CPU time: .004.
Last 5 digits 1989.
Chudnovsky's algorithm using binary splitting in Gambit Scheme: digits
10000, CPU time: .028.
Last 5 digits 75678.
Chudnovsky's algorithm using binary splitting in Gambit Scheme: digits
100000, CPU time: .472.
Last 5 digits 24646.
Chudnovsky's algorithm using binary splitting in Gambit Scheme: digits
1000000, CPU time: 6.448.
Last 5 digits 58151.
Chudnovsky's algorithm using binary splitting in Gambit Scheme: digits
10000000, CPU time: 98.612.
Last 5 digits 55897.
So it appears that for this algorithm applied to large integers, GMP's
bignum routines are about 3-4 times as fast as Gambit's bignum
routines. Not so bad. For smaller bignums, GMP has a bigger advantage.
The C program gmp-chudnovsky.c includes certain optimizations to this
basic algorithm:
http://gmplib.org/pi-with-gmp.htmlftp://ftp.gmplib.org/pub/misc/gmp-chudnovsky.c
On my machine, compiled with
gcc -O3 -march=native -o gmp-chudnovsky gmp-chudnovsky.c -lgmp -lm
the CPU times for 1,000,000 and 10,000,000 digits are 1.064 and 18.200
seconds, respectively.
This is with a somewhat older machine
model name : Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz
running Ubuntu 13.04 with
heine:~/programs/gambiteer/gambit> gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro
4.7.3-1ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs
--enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.7 --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.7 --libdir=/usr/lib
--enable-nls --with-sysroot=/ --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes
--enable-gnu-unique-object --enable-plugin --with-system-zlib
--enable-objc-gc --with-cloog --enable-cloog-backend=ppl
--disable-cloog-version-check --disable-ppl-version-check
--enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64
--with-multilib-list=m32,m64,mx32 --with-tune=generic
--enable-checking=release --build=x86_64-linux-gnu
--host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-1ubuntu1)
heine:~/programs/gambiteer/gambit> gsi -v
v4.6.9 20130607151908 x86_64-unknown-linux-gnu "./configure
'--enable-single-host' '--enable-multiple-versions' '--enable-shared'"
and the Ubuntu-provided GMP 5.0.5. (I'm sure the GMP folks have a
better way to build GMP on my machine than the "generic" 64-bit version
provided by Ubuntu.)
Brad
Hello,
Please, find below the fourth call for papers for IFL 2018.
Please forward these to anyone you think may be interested.
Apologies for any duplicates you may receive.
best regards,
Jurriaan Hage
Publicity Chair of IFL
---
Call for Draft papers for presentations
================================================================================
IFL
2018
30th Symposium on Implementation and Application of Functional
Languages
University of Massachusetts Lowell, MA, USA
September 5th-7th, 2018
http://iflconference.org
================================================================================
### Scope
The goal of the IFL symposia is to bring together researchers actively
engaged
in the implementation and application of functional and function-based
programming languages. IFL 2018 will be a venue for researchers to present
and
discuss new ideas and concepts, work in progress, and publication-ripe
results
related to the implementation and application of functional languages and
function-based programming.
Topics of interest to IFL include, but are not limited to:
- language concepts
- type systems, type checking, type inferencing
- compilation techniques
- staged compilation
- run-time function specialization
- run-time code generation
- partial evaluation
- (abstract) interpretation
- metaprogramming
- generic programming
- automatic program generation
- array processing
- concurrent/parallel programming
- concurrent/parallel program execution
- embedded systems
- web applications
- (embedded) domain specific languages
- security
- novel memory management techniques
- run-time profiling performance measurements
- debugging and tracing
- virtual/abstract machine architectures
- validation, verification of functional programs
- tools and programming techniques
- (industrial) applications
### Keynote Speakers
* Adam Chlipala, Massachusetts Institute of Technology CSAIL
* Arjun Guha, University of Massachusetts Amherst
### Submissions and peer-review
Differently from previous editions of IFL, IFL 2018 solicits two kinds of
submissions:
* Regular papers (12 pages including references)
* Draft papers for presentations ('weak' limit between 8 and 15 pages)
Regular papers will undergo a rigorous review by the program committee, and
will
be evaluated according to their correctness, novelty, originality,
relevance,
significance, and clarity. A set of regular papers will be conditionally
accepted for publication. Authors of conditionally accepted papers will be
provided with committee reviews along with a set of mandatory revisions.
Regular papers not accepted for publication will be considered as draft
papers,
at the request of the author.
Draft papers will be screened to make sure that they are within the scope of
IFL, and will be accepted for presentation or rejected accordingly.
Prior to the symposium:
Authors of conditionally accepted papers and accepted presentations will
submit a pre-proceedings version of their work that will appear in the
draft
proceedings distributed at the symposium. The draft proceedings does not
constitute a formal publication.
We require that at least one of the authors present the work at IFL 2018.
After the symposium:
Authors of conditionally accepted papers will submit a revised versions of
their paper for the formal post-proceedings.
The program committee will assess whether the mandatory revisions have
been
adequately addressed by the authors and thereby determines the final
accept/reject status of the paper.
Our interest is to ultimately accept all conditionally accepted papers.
If you
are an author of a conditionally accepted paper, please make sure that you
address all the concerns of the reviewers.
Authors of accepted presentations will be given the opportunity to
incorporate
the feedback from discussions at the symposium and will be invited to
submit a
revised full article for the formal post-proceedings.
The program committee will evaluate these submissions according to their
correctness, novelty, originality, relevance, significance, and clarity,
and
will thereby determine whether the paper is accepted or rejected.
### Publication
The formal proceedings will appear in the International Conference
Proceedings
Series of the ACM Digital Library.
At no time may work submitted to IFL be simultaneously submitted to other
venues; submissions must adhere to ACM SIGPLAN's republication policy:
http://www.sigplan.org/Resources/Policies/Republication
### Important dates
Submission of regular papers: May 25, 2018
[PASSED!]
Submission of draft papers: July 17, 2018
[UPCOMING!]
Regular and draft papers notification: July 20, 2018
Deadline for early registration: August 8, 2018
Submission of pre-proceedings version: August 29, 2018
IFL Symposium: September 5-7, 2018
Submission of papers for post-proceedings: November 7, 2018
Notification of acceptance: December 22, 2018
Camera-ready version: February 10, 2019
### Submission details
All contributions must be written in English. Papers must use the ACM two
columns conference format, which can be found at:
http://www.acm.org/publications/proceedings-template
Authors submit through EasyChair:
https://easychair.org/conferences/?conf=ifl2018
### Peter Landin Prize
The Peter Landin Prize is awarded to the best paper presented at the
symposium every year. The honored article is selected by the program
committee
based on the submissions received for the formal review process. The prize
carries a cash award equivalent to 150 Euros.
### Organization and Program committee
Chairs: Jay McCarthy & Matteo Cimini, University of Massachusetts Lowell,
USA
Program Committee:
* Arthur Chargueraud, Inria, FR
* Ben Delaware, Purdue University, USA
* Christos Dimoulas, Northwestern University, USA
* David Darais, University of Vermont, USA
* Dominic Orchard, University of Kent, UK
* Ekaterina Komendantskaya, Heriot-Watt University, UK
* Garrett Morris, University of Kansas, USA
* Heather Miller, EPFL & Northeastern University, CH & USA
* Jeremy Yallop, University of Cambridge, UK
* Keiko Nakata, SAP Innovation Center Potsdam, DE
* Laura Castro, University of A Coruna, ESP
* Magnus Myreen, Chalmers University of Technology, SWE
* Natalia Chechina, Bournemouth University, UK
* Peter Achten, Radboud Universiteit Nijmegen, NL
* Peter-Michael Osera, Grinnell College, USA
* Richard Eisenberg, Bryn Mawr College, USA
* Trevor McDonell, University of New South Wales, AUS
* Yukiyoshi Kameyama, University of Tsukuba, JAP
### Venue
The 30th IFL is organized by the University of Massachusetts Lowell.
The City of Lowell is located at the heart of the Merrimack Valley just 30
miles
northwest of Boston. Lowell can be easily reached by train or taxi.
See the website for more information on the venue.
### Acknowledgments
This call-for-papers is an adaptation and evolution of content from previous
instances of IFL. We are grateful to prior organizers for their work, which
is
reused here.
A part of IFL 2018 format and CFP language that describes conditionally
accepted
papers has been adapted from call-for-papers of OOPSLA conferences.