Mentions légales du service

Skip to content

Allow mmap-ing s data

Alexander Kruppa requested to merge mmap_s into master

Adds a new configure option: --enable-mmap and, if mmap is enabled, two new command line options: -bsavems, -bloadms

The rationale is that when multiple ecm processes run on the same machine, all doing ECM with batch stage 1 and the same B1, they all have their own batch product s in memory which contains the same data for all processes. As the batch product can become quite large with large B1, this may cause the machine to run out of memory with many cores. By using a file-backed mmap instead, the operating system can use shared memory between all processes.

The file format for the s save files has changed. It has a header now, with magic number, endianness, B1 value and a checksum. The file format is different between mmap-ed and non-mmap-ed data; the mmap-ed one uses the host's endianness for mp_limb_t (as the disk file is just a memory image) while the non-mmap-ed one uses mpz_out_raw() (as before) which always writes in big-endian.

Merge request reports