The Deep Dive

Introduction to Multi-threading and How It is Used in Deep Block

Written by Gwihwan Moon | Jul 4, 2020 5:18:28 AM

 

Today we will explain the term “multithreading” and how it is used in Deep Block.

In computer architecture, multithreading is the ability of the CPU to provide multiple threads of execution concurrently.

And the thread is, simply speaking, the smallest unit of a program.

Some Strict computer scientists may not like my explanation, but I want to explain this to people who have less knowledge of computer science, so I will explain it in this way.

Anyway, the multithreading is a method of executing several program fragments (I mean threads) simultaneously.

If you are still a college student or someone who is learning computer science, this tutorial will probably help you for learning multi-thread programming.

Anyway, multi-core processors are widely used these days due to the development of the hardware technology.

So if multithreading is used well, the performance of software can be dramatically improved.

However, multithread programming is quite difficult than you think.

Take the chocolate factory example.



When there are several people in the chocolate factory, making each person make chocolate independently will increase efficiency.
But rather than doing this way, it would be more efficient to divide the work if there are more than 10 people.
The problem arises here.
The order of taking out the chocolate from the mold, packing it, and putting the packaged chocolate in a box should not be reversed.
Likewise, various threads require control of the order, and sometimes this can be quite challenging if the task is complex or if serious optimization is needed.

Now, I will explain how the multithreading method is used in Deep Block.
The multithreading is used in many places of the Deep Block service.
For example, it is used for processing high-resolution imagery.
Consider the case where you upload a satellite image of 10Kx10K pixels to Deep Block.
We show the satellite image you uploaded on the browser, support you to draw a bounding box on that image, and train the AI ​​model based on the drawn bounding box and the image.

However, the size of the file you uploaded may exceed 1 gigabyte, and the resolution is very large.
And conventional way of rendering such a large file on the screen and processing the entire file at once would take a large amount of time.

Because of this problem, we parse the image file in multiple pieces for processing, rendering and network transmission.

And in this process, we are using multithreading techniques to improve performance.
Each of our supercomputers has dozens of cores in it.
And even now, these cores are doing various things at the same time, such as parsing and transmitting your images.

If you are having trouble processing high resolution images, please contact us.
We can help you.
Especially if you are detecting something in the high resolution image, our technology and Deep Block can definitely help you.

Start Deep Block today.