pps23_final_project
git repo for final project of parallel programming.
project proposal/presentation/report
To make the documents made for the course from tex source:
cd docs
make
Please be sure to install xelatex and tex packages used by the documents.
External projects, libs
- Klayout: The project we would like to explore parallelism opportunity, the focus is on DRC(Design rule check).
- openMP: Our plan A to parallel some DRC operation like "and". openMP is shipped with gcc/g++, just
#include <omp.h>
in the cpp source and-fopenmp
when linking the binary. - taskflow: Our plan B to parallelize DRC operation on task level.
Test caravel design from skywater 130nm openPDK
- test_case/decred_controller.gds.gz is a cell extracted from caravel.gds.gz of my forked repo originates from a real chip tape out, see efabless link
steps to build klayout and view the gds
- install QT5, python, ruby lib and other dependacies, see https://www.klayout.de/build.html
cd klayout; ./build.sh -option "-j8" -without-qtbinding -build build-release
export LD_LIBRARY_PATH="$PWD/build-release"
./build-release/klayout ../test_case/caravel.gds.gz
Test with original and operation benchmark input
- design input:
test_case/caravel.gds.gz
- ruby runset of "and" operation:
test.drc
- to execute it:
./drc.sh
, at my test machine
TaskFlow experiment
./tf.sh
test host
- CPU: 12th Gen Intel(R) Core(TM) i7-12700K
- MEM: 32 GB DDR4 MEM
- GPU: NVIDIA GeForce RTX 3050 NVIDIA-SMI 530.41.03 Driver Version: 530.41.03 CUDA Version: 12.1
- OS: proxmox-ve: 7.3-1 (running kernel: 5.15.35-1-pve)