MétaCan
Menu
Back to cohort
Record W6968466038 · doi:10.5281/zenodo.3646041

Artifact of ICPE 2020 paper : A Fully Structure-Driven Performance Analysis of Sparse Matrix-Vector Multiplication

2020· other· en· W6968466038 on OpenAlexaff

Bibliographic record

VenueZenodo (CERN European Organization for Nuclear Research) · 2020
Typeother
Languageen
FieldMedicine
TopicPreterm Birth and Chorioamnionitis
Canadian institutionsMcGill University
Fundersnot available
KeywordsArtifact (error)Noise (video)Feature (linguistics)Image processingMatching (statistics)

Abstract

fetched live from OpenAlex

<strong>Artifact of ICPE 2020 Paper : A Fully Structure-Driven Performance Analysis of Sparse Matrix-Vector Multiplication</strong> Sparse matrix-vector multiplication (SpMV) implementations for each of the four formats -- COO, CSR, DIA and ELL.<em> y = Ax</em> where A is a M x N sparse matrix with nnz number of non-zeros, x is a dense input vector of size N and y is a dense output vector of size M. <em>We provide the artifact as a docker container image for portability.</em> <strong>Docker :</strong> <em>pjots/icpe2020:latest</em> (https://hub.docker.com/r/pjots/icpe2020) <strong><em>Getting Started Guide on how to use the docker to run the artifact</em></strong> <strong>Install Docker</strong> Please follow the instructions at https://docs.docker.com/install/ to install and start the Docker Engine. <strong>Memory and Disk Requirements</strong> The docker image of size ~= 15GB contains benchmarks(~=47GB) in a tarball of size ~=12GB, hence it is suggested that a minimum of 70GB is required to run the artifact. Please adjust the memory(at least 8GB) and disk image size of docker engine accordingly. <strong>Load Artifact Image</strong> Please open your terminal and run the following command to load the artifact image from the given tar file: <pre><code class="language-bash">docker load &lt; icpe2020.tar</code></pre> <strong>Run Artifact</strong> Please run the following command to start running the artifact: <pre><code class="language-bash">docker run pjots/icpe2020:latest</code></pre> In addition to running the artifact, the outputs can be viewed on the host machine using -v flag as follows : <pre><code class="language-bash"> mkdir -p &lt;HOST_DIRECTORY_PATH&gt; docker run -v &lt;HOST_DIRECTORY_PATH&gt;:/ICPE2020/&lt;CONTAINER_DIRECTORY_PATH&gt; pjots/icpe2020:latest</code></pre> The following example is to view the generated RQ1 plots for SpMV C implementation at the desired HOST_DIRECTORY : <pre><code class="language-bash">docker run -v &lt;HOST_DIRECTORY_PATH&gt;:/ICPE2020/analysis/results/RQ1/c pjots/icpe2020:latest</code></pre> <em><strong>Step-by-Step Instruction Guide to evaluate the artifact</strong></em> <strong>Input Matrices</strong> The input matrix is required to be in Matrix Market format (.mtx). We used 1,979 real-life sparse matrices from The SuiteSparse Matrix Collection (formerly the University of Florida Sparse Matrix Collection) at https://sparse.tamu.edu which served as the set of sparse matrix benchmarks for our experiments. We provide these benchmarks in a tarball (.tar.bz2 format). <strong>Target Languages and Runtime</strong> We conducted our experiments on an Intel Core i7-3930K with 6 3.20GHz cores, 32KB L1, 256KB L2, 12MB last-level cache and 16GB memory, running Ubuntu Linux 16.04.2. We compiled our C implementations with gcc-7 at optimization level -O3. For WebAssembly, used the Chrome 74 browser (Official build 74.0.3729.108 with V8 JavaScript engine 7.4.288.25) as the execution environment. We run Chrome with a flag --experimental-wasm-simd to enable the use of SIMD (Single Instruction Multiple Data) instructions for loop vectorization optimizations in some of the SpMV WebAssembly implementations. We also enable two more flags, --wasm-no-bounds-checks and --wasm-no-stack-checks to avoid memory bounds checks and stack guards for performance testing. <strong>Software Requirements</strong> All of the following software requirements are met inside the docker container image. PAPI (Performance API) http://icl.utk.edu/papi/software/ gcc-7 python, pip, matplotlib, pandas chrome browser version 74 (prepacked in the docker image) Add MIME type for wasm inside apache2 config file (check .htaccess file inside wasm src directory) <strong>Step 1 : Run Experiments</strong> In the home directory, shell script named run.sh executes the following implementations to collect the raw data for our experiments which includes MFLOPS for each matrix on each format, and the comma-separated format output is stored in the raw-data directory. Run SpMV C implementation (output : raw-data/float_mflops.csv) Run SpMV C implementation with PAPI (Collecting hardware performance counters) (output : raw-data/float_mflops_with_papi.csv) Run C implementation to collect matrix feature (output : raw-data/features.csv) Run SpMV WASM implementation (output : raw-data/sequential-chrome-single.csv) <strong>Step 2 : Analyze Results</strong> We analyze the results by employing 10%-affinity criteria to obtain the set of matrices for each format category. An input matrix A has an x%-affinity for storage format F, if the performance for F is at least x% better than all other formats and the performance difference is greater than the measurement error. In addition to single-format categories (COO, CSR, DIA and ELL), there exist some cases where more than one format fulfils the x%-affinity metric versus the other formats but the performance between them cannot be distinguished, therefore combination-format categories were introduced. Using scripts at analysis/scripts/RQ1, analysis/scripts/RQ2, analysis/scripts/RQ3, the results are stored at analysis/results/RQ1, analysis/results/RQ2, analysis/results/RQ3 for both c and wasm respectively. <strong>Step 3 : Plot Results</strong> Finally, the plot results are generated via python scripts available at analysis/scripts/RQ1, analysis/scripts/RQ2 and analysis/scripts/RQ3 for each research question for both wasm and C. The plots are stored at analysis/results/RQ1, analysis/results/RQ2 and analysis/results/RQ3. Two shell scripts are provided : run.sh and run_existing.sh where, run.sh : runs the benchmarks from step 1 to step 3. run_existing.sh : uses the raw-data previously generated from step 1 and runs only step 2 and step 3. <strong>Notes</strong> Depending on the hardware, SpMV C implementation with PAPI may not provide the desired output since the PAPI events may not be supported by the given architecture. <br> <strong>How to build and run your own docker image from the given repository</strong> <strong>Build the docker image</strong> <pre><code class="language-bash">docker build -t pjots/my_image .</code></pre> <strong>Run the docker image</strong> <pre><code class="language-bash">docker run pjots/my_image</code></pre>

Fetched live from OpenAlex and de-inverted. Abstracts are not stored in this database: the inverted indexes are 8.6 GB of the frame’s 9.3 GB of text, and the host has 13 GB free.

How this classification was reachedexpand

Full frame distilled prediction

Teacher imitation

Not calibrated prevalence, not ground truth. Human validation pending. Learned from the 10,348 direct Codex labels and 10,348 direct Gemma labels. Candidate is the union of thresholded teacher heads; consensus is their intersection. These outputs are machine_predicted_unvalidated and are not human labels or direct frontier model labels.

metaresearch head score (Codex)0.000
metaresearch head score (Gemma)0.000
Version: codex-gemma-dda1882f352aValidation status: machine_predicted_unvalidated
Candidate categoriesInsufficient payload (model declined to judge)
Consensus categoriesInsufficient payload (model declined to judge)
DomainCandidate signal: none · Consensus signal: none
Study designCandidate signal: Not applicable · Consensus signal: Not applicable
GenreCandidate signal: Empirical · Consensus signal: none
Teacher disagreement score0.828
Threshold uncertainty score1.000

Codex and Gemma teacher scores by category

CategoryCodexGemma
Metaresearch0.0000.000
Meta-epidemiology (narrow)0.0000.000
Meta-epidemiology (broad)0.0010.000
Bibliometrics0.0010.001
Science and technology studies0.0000.000
Scholarly communication0.0000.000
Open science0.0000.000
Research integrity0.0000.000
Insufficient payload (model declined to judge)0.0640.001

Machine scores (provisional)

The two teacher heads of the student model, read on this work. A score orders the frame for review; it never asserts a category, and the validation status ships verbatim with every row.

Baseline scores from an immature model (maturity gate not passed, 7 training rounds). Scores rank; they never assert a category.

Opus teacher head0.018
GPT teacher head0.246
Teacher spread0.228 · how far apart the two teachers sit on this one work
Validation statusscore_only:v0-immature-baseline · verbatim from the scoring run: score_only means the number may rank works, and no category label ships from it

Classification

machine, unvalidated

Machine predicted; both teacher heads agree on what is shown here.

Study designNot applicable
Domainnot available
GenreEmpirical

How this classification was reached, model by model and score by score, is at the end of the page under "How this classification was reached".

Quick stats

Citations0
Published2020
Admission routes1
Has abstractyes

Explore more

Same venueZenodo (CERN European Organization for Nuclear Research)Same topicPreterm Birth and ChorioamnionitisFrench-language works237,207