This project contains the CUDA and C++ implementations of Algorithm 1 in arxiv:2301.00806 for enumerating weak pseudo-manifolds of Picard number four having maximal Buchstaber number.
We provide a GPU-friendly algorithm for obtaining all weak pseudo-manifolds whose facets are all in an input set of facets satisfying given conditions. We use it here to completely list up toric colorable seed PL-spheres with a few vertices implying the complete characterization of PL-spheres of dimension
The Data folder gathers the input facets for all the necessary dimensions
The cuda folder gathers the GPU algorithms, with one file for each dimension
The C++ folder contains the CPU version of the GPU algorithm which was used for comparing the output with the GPU algorithm.
Remember to change the data file you are using as an input in the appropriate *.cu
or *.cpp
script at line 5.
This GPU algorithm was implemented for NVIDIA graphic cards only. The installation information can be found on the official NVIDIA website. We strongly advise the interested reader to use Linux for compiling and running the algorithm.
An example is better than a thousand words, if launched from the root folder of the project, the following command
/usr/local/cuda-12.0/bin/nvcc ./cuda/main_8_12.cu -arch=sm_86 -o ./build/GPU_exec_8_12
will compile the cuda script main_8_12.cu
into the executable GPU_exec_8_12
,
where:
/usr/local/cuda-12.0/bin/nvcc
is the path to the CUDA Toolkitnvcc
compiler installed beforehand../cuda/main_8_12.cu
is the CUDA script we want to compile and-o ./build/GPU_exec_8_12
is the argument for specifying the output executable.-arch=sm_86
is the argument for specifying the architecture of the graphic card used for running the algorithm, find yours here.
For running it, it suffices to launch the executable ./build/GPU_exec_8_12
in the terminal with an output parsing to a file (e.g. ./build/GPU_exec_8_12 >> ./outputs/GPU_output_8_12.txt
).
For compiling, for example launch:
gpp ./cpp/main_8_12.cpp -o ./build/CPU_exec_8_12
For running it, it suffices to launch the executable ./build/CPU_exec_8_12
in the terminalwith an output parsing to a file (e.g. ./build/CPU_exec_8_12 >> ./outputs/CPU_output_8_12.txt
)..
The algorithm outputs all weak pseudo manifolds having their facets in a given set and satisfying the upper bound conjecture.
These simplicial complexes are pure and encoded as the list of their facets in a binary form.
For example the binary array [3,5,6]
represents the simplicial complex whose facets are [[1,2],[1,3],[2,3]]
, it is the boundary of a 2-simplex having vertices 1,2,3
.
See the aforementioned article for what is left to perform in order to obtain the complete list of seed PL-spheres of Picard number 4 having maximal Buchstaber number.
Find in the Results folder the complete database (up to simplicial isomorphisms) of Seed PL-spheres of Picard number CSPLS_n_m
where CSPLS
stand for Colorizable Seed PL-Spheres.
Once more, these text files store the PL-spheres as the array of the binary representation of their facets.
Their quantity is as follows:
p⟍n | total | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Notice the