Programming Parallel Computers

HY 2022–2023

IS6a: fast CPU solution for 1-bit images ★★★

You need to log in to make submissions.

What you will need to do in this task

Please read the general instructions for this exercise first. Here are the additional instructions specific to this task:

In this task, the input is always a monochromatic image: each input pixel is either entirely white with the RGB values (1,1,1) or entirely black with the RGB values (0,0,0). Make your solution to IS4 faster by exploiting this property. It is now enough to find a solution for only one color channel, and you will also have much less trouble with rounding errors. In this task, you are permitted to use single-precision floating point numbers.

What I will try to do with your code

I will first run all kinds of tests to see that your code works correctly. You can try it out locally by running ./grading test, but please note that your code has to compile and work correctly not only on your own computer but also on our machines.

If all is fine, I will run the benchmarks. You can try it out on your own computer by running ./grading benchmark, but of course the precise running time on your own computer might be different from the performance on our grading hardware.

Benchmarks

Name Parameters
benchmarks/1 nx = 100, ny = 100
the input is a structured black-and-white image with 100 × 100 pixels
benchmarks/2a nx = 199, ny = 199
the input is a structured black-and-white image with 199 × 199 pixels
benchmarks/2b nx = 200, ny = 200
the input is a structured black-and-white image with 200 × 200 pixels
benchmarks/2c nx = 201, ny = 201
the input is a structured black-and-white image with 201 × 201 pixels
benchmarks/3 nx = 400, ny = 400
the input is a structured black-and-white image with 400 × 400 pixels
benchmarks/4 nx = 600, ny = 600
the input is a black-and-white image with 600 × 600 pixels

Grading

In this task your submission will be graded using benchmarks/4: the input is a black-and-white image with 600 × 600 pixels.

The point thresholds are as follows. If you submit your solution no later than on Thursday, 31 August 2023, at 23:59:59 (Helsinki), your score will be:

Running timePoints
≤ 8.000 sec 1
≤ 5.000 sec 2
≤ 3.000 sec 3
≤ 2.000 sec 4
≤ 1.000 sec 5

For late submissions you will not get any points.