BAM
Abstract Machine for Bottom-Up Evaluation with the Push Method
|
Some basic version settings. More...
Go to the source code of this file.
Macros | |
#define | YES 1 |
#define | NO 0 |
#define | VER_PROG_NAME "ydb" |
#define | VER_PROMPT "ydb> " |
#define | VER_CGI NO |
#define | VER_ALERT_FILE "alert" |
#define | VER_DEBUG NO |
#define | VER_FULLCHECK NO |
#define | VER_DUMP YES |
#define | VER_DEBUG_OUT_ENABLED NO |
#define | VER_PAGESIZE 4096 |
#define | VER_MAX_TIMERS 5 |
#define | VER_MAX_ATOMSIZE 20 |
#define | VER_MAX_PRED_ARGS 10 |
#define | VER_BENCH_DBLP_LOAD NO |
#define | VER_BENCH_TCFF_LOAD_1 YES |
#define | VER_BENCH_TCFF_LOAD_2 YES |
#define | VER_BENCH_DBLP_1 NO |
#define | VER_BENCH_DBLP_2 NO |
#define | VER_BENCH_DBLP_3 NO |
#define | VER_BENCH_J1AXY_1 YES |
#define | VER_BENCH_J1AXY_2 YES |
#define | VER_BENCH_J1AXY_3 YES |
#define | VER_BENCH_J1AXY_4 YES |
#define | VER_BENCH_J1AXY_5 YES |
#define | VER_BENCH_J1AXY_6 YES |
#define | VER_BENCH_TCFF_1 YES |
#define | VER_BENCH_TCFF_2 YES |
#define | VER_BENCH_TCFF_3 YES |
#define | VER_BENCH_TCFF_4 YES |
#define | VER_BENCH_TCFF_5 YES |
#define | VER_BENCH_TCBF_1 NO |
#define | VER_BENCH_TCBF_2 NO |
#define | VER_BENCH_TCBF_4 NO |
#define | VER_BENCH_WINE NO |
#define | VER_TCFF_LOAD YES |
#define | VER_FILE_DBLP_TEST "../data/dblp_test.data" |
#define | VER_FILE_DBLP "../data/dblp.data" |
#define | VER_FILE_DBLP_BIG "../data/dblp_big.data" |
#define | VER_FILE_JOIN1_TEST "../data/d1000_test.P" |
#define | VER_FILE_JOIN1_10K "../data/d1000_relsize10000_xsb_cyc.P" |
#define | VER_FILE_JOIN1_50K "../data/d1000_relsize50000_xsb_cyc.P" |
#define | VER_FILE_JOIN1_250K "../data/d1000_relsize250000_xsb_cyc.P" |
#define | VER_FILE_TC_TEST "../data/tc_test.P" |
#define | VER_FILE_TC_50K "../data/tc_d1000_parsize50000_xsb_nocyc.P" |
#define | VER_FILE_TC_50K_CYC "../data/tc_d1000_parsize50000_xsb_cyc.P" |
#define | VER_FILE_TC_250K "../data/tc_d1000_parsize250000_xsb_nocyc.P" |
#define | VER_FILE_TC_250K_CYC "../data/tc_d1000_parsize250000_xsb_cyc.P" |
#define | VER_FILE_TC_500K "../data/tc_d1000_parsize500000_xsb_nocyc.P" |
#define | VER_FILE_TC_500K_CYC "../data/tc_d1000_parsize500000_xsb_cyc.P" |
#define | VER_FILE_TC_500K_D2 "../data/tc_d2000_parsize500000_xsb_nocyc.P" |
#define | VER_FILE_TC_500K_D2_CYC "../data/tc_d2000_parsize500000_xsb_cyc.P" |
#define | VER_FILE_TC_1M_D2 "../data/tc_d2000_parsize1000000_xsb_nocyc.P" |
#define | VER_FILE_TC_1M_D2_CYC "../data/tc_d2000_parsize1000000_xsb_cyc.P" |
#define | VER_FILE_WINE "../data/wine_data.P" |
#define | VER_UNIX YES |
#define | VER_CS_ISO YES |
#define | VER_CS_MSDOS NO |
#define | VER_IOSTREAM NO |
#define | VER_UNUSED(ARG) ARG |
#define | VER_PRESS_RETURN NO |
#define | VER_SIGNAL YES |
#define | VER_UINT_BITS 32 |
Typedefs | |
typedef char | VER_BYTE |
typedef unsigned short | VER_USHORT |
typedef int | VER_INT |
typedef unsigned int | VER_UINT |
typedef long long | VER_INT64 |
Some basic version settings.
#define NO 0 |
False value for use in feature selection macros.
#define VER_ALERT_FILE "alert" |
Name of the file for error messages and warnings.
#define VER_BENCH_DBLP_1 NO |
Compile Ver.1 of DBLP benchmark (Handwritten loader, RelLocalVars).
#define VER_BENCH_DBLP_2 NO |
Compile Ver.2 of DBLP benchmark (Cursor Interface, Rel+Var in Attributes).
#define VER_BENCH_DBLP_3 NO |
Compile Ver.3 of DBLP benchmark (Separate Objects).
#define VER_BENCH_DBLP_LOAD NO |
Compile benchmark of handcrafted Loader for DBLP Benchmark.
#define VER_BENCH_J1AXY_1 YES |
Compile Ver.1 of the Join1 a(X,Y) benchmark (RelAttr, no goto, fullDupCh).
#define VER_BENCH_J1AXY_2 YES |
Compile Ver.2 of the Join1 a(X,Y) benchmark (no goto, bitmap-dupcheck).
#define VER_BENCH_J1AXY_3 YES |
Compile Ver.3 of the Join1 a(X,Y) benchmark (goto, bitmap-dupcheck, cursor).
#define VER_BENCH_J1AXY_4 YES |
Compile Ver.4 of the Join1 a(X,Y) benchmark (functions, bitmap-dupcheck).
#define VER_BENCH_J1AXY_5 YES |
Compile Ver.5 of the Join1 a(X,Y) benchmark (fun without args, bitmap).
#define VER_BENCH_J1AXY_6 YES |
Compile Ver.6 of the Join1 a(X,Y) benchmark (abstract machine, bitmap).
#define VER_BENCH_TCBF_1 NO |
Compile Ver.1 of the TCBF benchmark (local vars for relations).
#define VER_BENCH_TCBF_2 NO |
Compile Ver.2 of the TCBF benchmark (cursor interface, RelAttr).
#define VER_BENCH_TCBF_4 NO |
Compile Ver.4 of the TCFF benchmark (with functions).
#define VER_BENCH_TCFF_1 YES |
Compile Ver.1 of the TCFF benchmark (local vars for relations).
#define VER_BENCH_TCFF_2 YES |
Compile Ver.2 of the TCFF benchmark (with cursor interface).
#define VER_BENCH_TCFF_3 YES |
Compile Ver.3 of the TCFF benchmark (seminaive evaluation).
#define VER_BENCH_TCFF_4 YES |
Compile Ver.4 of the TCFF benchmark (with functions).
#define VER_BENCH_TCFF_5 YES |
Compile Ver.5 of the TCFF benchmark (with abstract machine).
#define VER_BENCH_TCFF_LOAD_1 YES |
Compile benchmark of handcrafted Loader for TCFF Benchmark.
#define VER_BENCH_TCFF_LOAD_2 YES |
Compile benchmark of general Loader for TCFF Benchmark.
#define VER_BENCH_WINE NO |
Compile the wine ontology benchmark.
Please note that this is a very long procedure. Compiling with g++ with -O2 is possible (at least on a machine with big memory), but takes a long time (about 10 minutes on a fast computer). Compiling with "Microsoft Visual Studio Community 2015" on a machine with 4 GB memory gives the error: "fatal error C1002: compiler is out of heap space in pass 2"
#define VER_CGI NO |
Should this program run as CGI program?
#define VER_CS_ISO YES |
Allow national characters according to ISO Latin 8859/1 code.
#define VER_CS_MSDOS NO |
Allow national characters according to some MSDOS code.
Only one of VER_CS_ISO and VER_CS_MSDOS may be defined. If none is defined, only ASCII characters are accepted.
#define VER_DEBUG NO |
Check runtime assertions etc. (Debug Version).
#define VER_DEBUG_OUT_ENABLED NO |
Compile code for debug output (other than dumps).
Note that commenting out this symbol does not necessarily switch off all debug output. Debug output is also controlled by the debug flag in out_c. However, in benchmarks, when checking for this flag costs time, this is compiled in only if this symbol is defined. So comment out this symbol if doing benchmarks.
#define VER_DUMP YES |
Compile code for data structure dumps (for debugging/testing).
#define VER_FILE_DBLP "../data/dblp.data" |
Data file for the DBLP benchmark (official version from OpenRuleBench).
The file size is 125.434 KB (~122 MB). It contains data about 200.000 publications. The total number of facts (table rows) in the data file is about 2.4 Million (2 437 867).
#define VER_FILE_DBLP_BIG "../data/dblp_big.data" |
Data file for the DBLP benchmark (large version with all data from Oct 2016).
#define VER_FILE_DBLP_TEST "../data/dblp_test.data" |
Data file for the DBLP benchmark (small test version).
#define VER_FILE_JOIN1_10K "../data/d1000_relsize10000_xsb_cyc.P" |
Data file for the Join 1 benchmark (10K rows per table).
#define VER_FILE_JOIN1_250K "../data/d1000_relsize250000_xsb_cyc.P" |
Data file for the Join 1 benchmark (250K rows per table).
#define VER_FILE_JOIN1_50K "../data/d1000_relsize50000_xsb_cyc.P" |
Data file for the Join 1 benchmark (50K rows per table).
#define VER_FILE_JOIN1_TEST "../data/d1000_test.P" |
Data file for the Join 1 benchmark (small test file).
#define VER_FILE_TC_1M_D2 "../data/tc_d2000_parsize1000000_xsb_nocyc.P" |
Data file for transitive closure benchmark (2K nodes, 1M edges).
#define VER_FILE_TC_1M_D2_CYC "../data/tc_d2000_parsize1000000_xsb_cyc.P" |
Data file for transitive closure benchmark (2K nodes, 1M edges).
#define VER_FILE_TC_250K "../data/tc_d1000_parsize250000_xsb_nocyc.P" |
Data file for transitive closure benchmark (1K nodes, 250K edges).
#define VER_FILE_TC_250K_CYC "../data/tc_d1000_parsize250000_xsb_cyc.P" |
Data file for transitive closure benchmark (1K nodes, 250K edges).
#define VER_FILE_TC_500K "../data/tc_d1000_parsize500000_xsb_nocyc.P" |
Data file for transitive closure benchmark (1K nodes, 500K edges).
#define VER_FILE_TC_500K_CYC "../data/tc_d1000_parsize500000_xsb_cyc.P" |
Data file for transitive closure benchmark (1K nodes, 500K edges).
#define VER_FILE_TC_500K_D2 "../data/tc_d2000_parsize500000_xsb_nocyc.P" |
Data file for transitive closure benchmark (2K nodes, 500K edges).
#define VER_FILE_TC_500K_D2_CYC "../data/tc_d2000_parsize500000_xsb_cyc.P" |
Data file for transitive closure benchmark (2K nodes, 500K edges).
#define VER_FILE_TC_50K "../data/tc_d1000_parsize50000_xsb_nocyc.P" |
Data file for transitive closure benchmark (1K nodes, 50K edges).
#define VER_FILE_TC_50K_CYC "../data/tc_d1000_parsize50000_xsb_cyc.P" |
Data file for transitive closure benchmark (1K nodes, 50K edges).
#define VER_FILE_TC_TEST "../data/tc_test.P" |
Data file for transitive closure benchmark (small test file).
#define VER_FILE_WINE "../data/wine_data.P" |
Data File for the Wine Ontology Benchmark.
#define VER_FULLCHECK NO |
Do also time-intensive integrity checks of data structures.
Note: This has only an effect if VER_DEBUG is also defined. Otherwise all integrity checks are eliminated.
#define VER_IOSTREAM NO |
Use the iostream library (else: low level UNIX functions).
#define VER_MAX_ATOMSIZE 20 |
Maximal length of atoms / identifiers.
#define VER_MAX_PRED_ARGS 10 |
Maximal number of arguments of an EDB predicate.
#define VER_MAX_TIMERS 5 |
Number of timer_c
objects existing at the same time.
#define VER_PAGESIZE 4096 |
Size of a memory page in bytes.
#define VER_PRESS_RETURN NO |
Do we need to wait at the end before the program ends?
#define VER_PROG_NAME "ydb" |
What is the name of this program?
#define VER_PROMPT "ydb> " |
Prompt for input from keyboard (standard input).
#define VER_SIGNAL YES |
Try to catch signals.
#define VER_TCFF_LOAD YES |
Is the old handcrafted loader for the TCFF benchmark needed?
This is automatically defined based on the selected benchmarks.
#define VER_UINT_BITS 32 |
Number of bits in an unsigned int (used for bitmaps).
#define VER_UNIX YES |
Is the program being compiled on a UNIX-like system?
#define VER_UNUSED | ( | ARG | ) | ARG |
Mark unused arguments so that the warning is not printed.
#define YES 1 |
True value for use in feature selection macros.
Data type for bytes in data blocks (sizeof must be 1).
typedef int VER_INT |
Data type for 32 Bit numbers, sizeof must be 4.
typedef long long VER_INT64 |
Data type for 64 Bit numbers (if compiled on 64 Bit machine).
Must be sufficient to hold a pointer.
typedef unsigned int VER_UINT |
Data type for unsigned 32 Bit numbers, sizeof must be 4.
typedef unsigned short VER_USHORT |
Data type for 16 Bit numbers (unsigned), sizeof must be 2.