qsieve-fwd.H File Reference

contains some types and constants for qsieve.H and qsieve.cc More...

#include "utils.H"

Include dependency graph for qsieve-fwd.H:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  StaticFactorbaseSettings

Defines

#define TSIEVEELEMENTSIZE   1

Variables

const int server_port = 12364
const int XML_status_port = 12370
const char *const QsieveLogon = "Qsieve3-Logon"
const int SingleLargePrime_Threshold = 1000000000
const int DynamicFactor_SievingThreshold = MIN(SingleLargePrime_Threshold,100000000)
const int PhysicalSieveSize = 64*1024
 size of sieve interval in cacheable memory for fast access


Detailed Description

contains some types and constants for qsieve.H and qsieve.cc

Definition in file qsieve-fwd.H.


Define Documentation

#define TSIEVEELEMENTSIZE   1

Definition at line 30 of file qsieve-fwd.H.


Variable Documentation

const int DynamicFactor_SievingThreshold = MIN(SingleLargePrime_Threshold,100000000)

Definition at line 25 of file qsieve-fwd.H.

Referenced by TDynamicFactorRelation::sieveable().

const int PhysicalSieveSize = 64*1024

size of sieve interval in cacheable memory for fast access

The logical sieve interval is sieved in separate smaller parts, because memory access in cache can be up to 200 times faster than uncached memory access (cost of a cachemiss). The value of PhysicalSieveSize is ideally the amount of memory that fits into processor cache while not replacing too much other cacheable data.

The relations are sieved in logical intervals [-M,M] using a loop of physical intervals of PhysicalSieveSize. PhysicalSieveSize must be set at compile time and is constant.

If cache effects wouldn't matter, then a greater value of PhysicalSieveSize would be better than a smaller one. But cache effects do matter! A cache miss can cost between 10 and 200 instruction cycles!

Smaller sieve sizes increase computational overhead, but they also increase cache efficiency.

However, you should use a multiple of 1024 to be on the safe side. If optimized assembler code comes into play, this constraint MUST be met!

Definition at line 60 of file qsieve-fwd.H.

Referenced by StaticFactorbase::compute_StaticFactorbase(), do_sieving_DynamicFactors(), do_sieving_Squares(), main(), and tune_parameters().

const char* const QsieveLogon = "Qsieve3-Logon"

Definition at line 17 of file qsieve-fwd.H.

Referenced by main(), Cprocess_clients::process_data_stream(), and Cprocess_clients::process_data_stream_ecm().

const int server_port = 12364

Definition at line 11 of file qsieve-fwd.H.

const int SingleLargePrime_Threshold = 1000000000

Definition at line 20 of file qsieve-fwd.H.

Referenced by CmpqsPolynom::compute_first_polynomial(), CmpqsFactor::DLP_get(), CmpqsFactor::DLP_get_using_pollard_rho(), and main().

const int XML_status_port = 12370

Definition at line 14 of file qsieve-fwd.H.

Referenced by CXML_StatusServer::THREAD_XML_StatusServer().


Generated on Wed Nov 7 23:30:15 2007 for Qsieve by  doxygen 1.5.4