Skip to content
/ Dwarf Public

Dwarf is a Domain Specific Language for Representative-Based Clustering Algorithms.

License

Notifications You must be signed in to change notification settings

ADAPTLab/Dwarf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c1e1351 · Jul 2, 2019

History

14 Commits
Jun 27, 2019
Jun 28, 2019
Jun 24, 2019
Jun 28, 2019
Jun 24, 2019
Jun 20, 2019
Jun 26, 2019
Jul 2, 2019
Jun 27, 2019
Jun 28, 2019

Repository files navigation

Dwarf

Dwarf is a Domain Specific Language for Representative-Based Clustering Algorithms. Its Parallelizing Compiler takes the sequential Dwarf code and produces either Distributed-memory MPI C++ code or Hybrid-memory (MPI and OpenMP) C++ Code.

Usage

sh dwarf.sh <dwarf file name>.dw
  1. Compiles Dwarf Source code to generate C++ code as per Dwarf Compiler Flags
  2. Compiles C++ Code to generate executables
    • master
    • slave
  3. Execute the executables using one of make targets
    • localserial : Sequential Execution on the local machine
    • localpar p=4 : Distributed-memory Execution by 4 processes on the local machine
    • localhybrid p=4 t=2 : Hybrid-memory Execution by 4 processes and 2 threads on the local machine
    • serial : Sequential Execution on the given host machine
    • mpircluster p=4 : Distributed-memory Execution by 4 processes on the cluster (assumes a hostlist for MPI)
    • hybridrcluster p=4 t=2 : Hybrid-memory Execution by 4 processes and 2 threads on the cluster (assumes a hostlist for MPI)

Dependencies

Generated CPP Code

Compiler generates code in cppsrc directory. It already has a few codes.

Platform\Algorithm K-means Algorithm EM Algorithm
Serial C++ Code KDSeq EDSeq
Distributed-memory Parallel MPI C++ Code KDDis EDDis
Hybrid-memory Parallel MPI OpenMP C++ Code KDHyb EDHyb

Benchmark Codes

Comparison of various manual parallel implementations of Representative-based Clustering Algorithms with Dwarf Compiler generated automatically parallelized codes.

Sample Test Codes

About

Dwarf is a Domain Specific Language for Representative-Based Clustering Algorithms.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages