mersenneforum.org  

Go Back   mersenneforum.org > Factoring Projects > Msieve

Reply
 
Thread Tools
Old 2009-02-23, 22:52   #23
jasonp
Tribal Bullet
 
jasonp's Avatar
 
Oct 2004

3,541 Posts
Default

Msieve also uses disk as backing store, but I made the decision early on to write as few temporary files as possible, and make them as small as possible, so that the majority of the disk usage is bound up in (one copy of) the text of relations. That's nice on smaller systems, but Greg and Bruce have systems with tens of gigs of memory. In addition, forcing the reading of relations from sequential disk-based passes means that more than 80% of the time needed by the filtering goes into removing duplicates and singletons, and the processing for this step is pretty trivial. Removing cliques accounts for the majority of the rest, not because the clique processing touches disk but because the process is broken up into so many identical passes to conserve memory.

Ideally what you want is a system that keeps relations in memory when they fit, and spills to disk when they don't. It should also remember every factor of every relation so that ideals can be adaptively remembered or forgotten during the filtering, and so that singleton removal can be combined with clique removal to reduce the number of passes. Originally I thought it wouldn't be hard to add a memory-map layer to the savefile-reading code, but for big problems that only benefits really big systems.

It's possible that all these measures are huge overkill for the vast majority of users, but this thread has shown the pain that you get when you push right up to the limit of what 'organically grown' code can do. I can do better, but I don't exactly know when :)
jasonp is offline   Reply With Quote
Old 2009-11-03, 18:52   #24
henryzz
Just call me Henry
 
henryzz's Avatar
 
"David"
Sep 2007
Cambridge (GMT/BST)

16F816 Posts
Default

Quote:
Originally Posted by jasonp View Post
Msieve also uses disk as backing store, but I made the decision early on to write as few temporary files as possible, and make them as small as possible, so that the majority of the disk usage is bound up in (one copy of) the text of relations. That's nice on smaller systems, but Greg and Bruce have systems with tens of gigs of memory. In addition, forcing the reading of relations from sequential disk-based passes means that more than 80% of the time needed by the filtering goes into removing duplicates and singletons, and the processing for this step is pretty trivial. Removing cliques accounts for the majority of the rest, not because the clique processing touches disk but because the process is broken up into so many identical passes to conserve memory.

Ideally what you want is a system that keeps relations in memory when they fit, and spills to disk when they don't. It should also remember every factor of every relation so that ideals can be adaptively remembered or forgotten during the filtering, and so that singleton removal can be combined with clique removal to reduce the number of passes. Originally I thought it wouldn't be hard to add a memory-map layer to the savefile-reading code, but for big problems that only benefits really big systems.

It's possible that all these measures are huge overkill for the vast majority of users, but this thread has shown the pain that you get when you push right up to the limit of what 'organically grown' code can do. I can do better, but I don't exactly know when :)
Just rereading old threads....
In the end you ended up changing filtering to not use the disk so much for everyone after all.
henryzz is offline   Reply With Quote
Reply



Similar Threads
Thread Thread Starter Forum Replies Last Post
Bug/oddity reports fivemack NFS@Home 1 2015-01-30 11:34
Attempts vs. Successes oddity Rodrigo GPU Computing 8 2014-09-19 08:44
Another server(?) oddity Graff PrimeNet 2 2010-01-25 17:00
Smaller filtering run oddity 10metreh Msieve 17 2009-01-05 14:58
Self-test oddity JuanTutors Software 1 2007-03-16 12:33

All times are UTC. The time now is 01:17.


Sat Jul 17 01:17:39 UTC 2021 up 49 days, 23:04, 1 user, load averages: 0.91, 1.10, 1.25

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.

This forum has received and complied with 0 (zero) government requests for information.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.
A copy of the license is included in the FAQ.