SAUCE
Home
Events
Listing
Future
Previous
Accelerated Computing with GPUs 2020
Data Mining - Winter 20/21
High Performance Computing 2019
Einführung in die Bioinformatik WS19/20
Computational Logic
Parallel Algorithms and Architectures 2019
DSEA Praktikum 2018/19
Deep Learning 2018
High Performance Computing 2018
Parallel Algorithms and Architectures 2018
Datenstrukturen und effiziente Algorithmen Ws 18/19
EiP SoSe 18
bio-st-18
EiP WS 2017/18
High Performance Computing 2017
Datenstrukturen und effiziente Algorithmen WiSe 17/18
PS SS 2017
Einfuehrung in die Programmierung SS17
Parallel Algorithms and Architectures 2017
High Performance Computing 2016
DSEA 2016/17
EiP WS2016/17
Parallel Algorithms and Architectures 2016
PS SS 2016
Krypto SS 2016
EiP SS 2016
DSEA Praktikum WS 2015/16
DSEA WS 2015/16
News
Documentation
About
Changelog
Roadmap
Deutsche Dokumentation
Tips and Tricks
Test configuration
Language information
Contact
Login
High Performance Computing 2019
Pair Programming
Pair Programming
Sheet 2 (AVX Shuffles, Instruction Parallelism)
Sheet 3 (Stochastic PI, Shallow Deep Learning)
Sheet 4 (Conjugate Gradient with MPI, Asynchronous 2D Jacobi Partitioning)
Sheet 6 (std::async, block-cyclic distribution)
Sheet 7 (Atomics, Queue)
Sheet 8 (Sorting, Riemann Zeta)
Sheet 5 (Reverse-Engineering MPI, SUMMA)
Sheet 9 (Data Dependencies, Triangular Matrix Vector)
Sheet 10: Lockfree Hashmaps
Sheet 11 (Position Based Dynamics)
Sheet 12 ( Outer Product, Kmer Counting)
Tutorial 0: C++ Examples
Tutorials_extra
All Exercises
testSheet
Sheet 2 Redoable
Sheet 3 Redoable
Sheet 4 Redoable
Sheet 5 Redoable
Sheet 6 Redoable
Sheet 7 Redoable
Sheet 8 Redoable
Sheet 9 Redoable
Sheet 10 Redoable
Sheet 11 Redoable
Sheet 12 Redoable
Lecture 8: Dynamic Schedule of All-Pairs distance computation
Lecture 3: AVX SOA normalization
Lecture 4: MPI PI
Lecture 5: Asynchronous 1D Jacobi Partitioning
Lecture 6: Interleaved SUMMA
Lecture 7: Thread distributions MVM
Lecture 8: Dynamic Schedule of All-Pairs distance computation
Lecture 9: 1NN classifier on MNIST data
Lecture 10: Backward Substitution
Lecture 11: Lockfree List using an Array
Lecture 11: Lockfree Hashmap
Lecture 12: Kepler Orbits
Lecture 8: Dynamic Schedule of All-Pairs distance computation
Assignment
Scaffold Head
#include <iostream> // std::cout #include <cstdint> // uint64_t #include <vector> // std::vector #include <thread> #include <mutex> #include "include/hpc_helpers.hpp" // timers, no_init_t #include "include/binary_IO.hpp" // load_binary
Scaffold Foot
int main() { // used data types typedef float value_t; typedef uint64_t index_t; // number of images and pixels const index_t rows = 6500; // 65000 in real life const index_t cols = 28*28; // load MNIST data from binary file TIMERSTART(load_data_from_disk) std::vector<value_t> mnist(rows*cols); load_binary(mnist.data(), rows*cols, "./data/mnist_65000_28_28_32.bin"); TIMERSTOP(load_data_from_disk) TIMERSTART(compute_distances) std::vector<value_t> all_pair(rows*rows); dynamic_all_pairs(mnist, all_pair, rows, cols); TIMERSTOP(compute_distances) TIMERSTART(dump_to_disk) dump_binary(mnist.data(), rows*rows, "./all_pairs.bin"); TIMERSTOP(dump_to_disk) std::cout << "Parallel programming is fun!" << std::endl; }
Start time:
Do 05 Dez 2019 10:00:00
End time:
Di 11 Feb 2020 10:15:00
General test timeout:
30.0 seconds
Tests
Comment prefix
#
Given input
Expected output
Parallel programming is fun!