Time is fragmentary; a bit about the similarity of distributed systems and weak memory models

 3r33312. 3r3-31. Hello to all! 3r33232.  3r33312. 3r33232.  3r33312. Today we would like to once again touch on the topic of simultaneous and sequential execution in various programs, especially in distributed systems. Back in September, we published an article "3-3336. Synchronicity is a myth 3r-3216." On this topic, and now we are publishing a translation of a more serious study, which we hope will help you better navigate with distributed systems. 3r33232.  3r33312. memory sequencing model. ; it reflects which guarantees the processor does not wish to give you at the assembly execution ...
+ 0 -

We calculate "magic squares" with the help of GPU

Hello habr.
 
 
The theme of "magic squares" is quite interesting, because on the one hand, they are known since antiquity, on the other hand, the calculation of the "magic square" even today is a very difficult computational problem. Recall that in order to construct the "magic square" NxN, it is necessary to write the numbers 1N * N so that the sum of its contours, verticals and diagonals is equal to the same number. If you just sort through the number of all the options for placing the digits for a 4x4 square, you get 16! = ??? ??? options.
 
 
We will think about how this can be done more effectively.
 
We calculate "magic squares" with the help of GPU ...
+ 0 -

Fast resize of jeeps on the video card

In applications for working with images, the problem of resizing jeeps (JPEG compressed images) is quite common. In this case, you can not immediately make a resize and you must first decode the original data. There is nothing complicated and new in this, but if it needs to be done many millions of times a day, then the optimization of the performance of such a solution, which should be very fast, becomes especially important.
 
Fast resize of jeeps on the video card  
 
 
This task is often encountered when organizing remote hosting for image storage, since most cameras and phones are shot in JPEG format. Daily photo archives of leading web ...
+ 0 -

Synchronicity is the myth of

Hello everybody!
 
 
Today you are waiting for a long text without pictures (slightly reduced and compared with the original), where the thesis, taken out in the headline, is analyzed in detail. Microsoft Veteran Terry Crowley explains the essence of asynchronous programming and explains why this approach is much more realistic and more expedient than synchronous and sequential.
 
 
Those who want or are thinking about writing a book that deals with such topics - write in a personal.
 
often used ...
+ 0 -

Parallelizing tasks with dependencies is an example in .NET

Hello colleagues!
 
 
This week we have transferred into the translation an ambitious in its complexity book " .Concurrency in .NET " Publisher Manning:
 
 
Parallelizing tasks with dependencies is an example in .NET  
 
The author kindly posted on the site Medium an excerpt from the 13th chapter, which we propose to evaluate long before the premiere.
 
Enjoy reading!
 
 
Let's say you need to write a tool that allows you to perform a number of asynchronous tasks, each of which has its own set of dependencies that affect the order of operations. Such problems can be solved through consistent and imperative implementation, but if you want to achieve maximum performance...
+ 0 -

What is Korutin in Kotlin?

What is Korutin in Kotlin?
 
Korutiny
- This is an excellent functionality, available in the language of Kotlin. I already tried it and I really liked it.
 
The purpose of this article is to help you understand Korutin. Just be careful when reading and you will succeed.
 
Let's start with the official definition of Korutin.
 
Korutin is a new way of writing asynchronous, non-blocking code.
The first question arising when reading this definition is than
Korutiny
are different from threads?
 
Korutiny
- these are lightened flows. A lightweight stream means that it is not tied to the native stream, so it does not require context switching ...
+ 0 -

[Перевод]When to use parallel streams

Source: http://gee.cs.oswego.edu/dl/html/StreamParallelGuidance.html
 
Authors: Doug Lea together with Brian Goetz, Paul Sandoz, Alexey Shipilov, Heinz Kabutz, Joe Bowbeer,
The framework java.util.streams contains data-driven (data-driven) operations on collections and other data sources. Most streaming methods perform the same operation on each of the elements. Using the collection method parallelStream () , in the presence of several nuclei, data-driven can be turned into data-parallel . But when is it worth doing? ...
+ 0 -

From ??? TFlops HPL to ASC'18 Application Innovation

Hello, Habr! We continue the series of articles about the participation of the team from St. Petersburg State University (we call ourselves EnterTildeDot) on the world's largest student supercomputer competitions.
 
From ??? TFlops HPL to ASC'18 Application Innovation
 
In this article we will look at the way to ASC'18 on the example of one team member, paying special attention to the business card of the competitions and modern supercomputers in general - Linpack. Well, let's look at the secret of achieving a record and antirecord of the performance of the computing system.
articles , including ...
+ 0 -

Basics of working with futés

Basics of working with futés<{full}>
Futex (futex - short for Fast Userspace mutex) is a mechanism proposed by Linux developers from IBM in 2002 and included in the kernel at the end of 2003. The main idea was to provide a more efficient way to synchronize user threads with a minimal number of calls to the OS kernel.
 
 
In this article, we will review the futures, try to understand the principles of their operation, and also use them as bricks to build higher-level (and familiar) synchronization objects.
 
 
An important point: futexes are a fairly low-level tool, it's worth using it directly when developing fundamental libraries...
+ 0 -

Creating a bot to participate in the AI ​​mini cup. experience using GPU

Creating a bot to participate in the AI ​​mini cup. experience using GPU  
continuation article1 and article 2 .
 
Below, I will talk about the author's experience in using the GPU for calculations, including the creation of a bot to participate in the AI ​​mini cup. But rather it is essay on the GPU theme.
 
-The name is magical
 
-You know what, Joel? The magic goes
quintessence
 
parallel computing.
 
int tid = blockIdx.x * blockDim.x + threadIdx.x;
int threadN = gridDim.x * blockDim.x;
for (int pos = tid; pos < numElements; ...
+ 0 -