In this post I will look into multi-core programming using Go. The language is good for concurrency,
and handles multi-core parallel execution really well too. As a practical exercise Bitonic Sorter
will be implemented. We will test the code on 8-core machine to see what benefit can parallelism provide.
Go is amazingly enjoyable language. Experience with it will be even greater once major IDE providers (yes, JetBrains I
am looking at you!) start producing full-fledged Golang IDEs (instead of somewhat limited plugins). Before that happens,
you are stuck with assembling a good toolset manually, so let’s do just that, for Vim!
In this entry we will dive into the world of dynamic programming, by looking at one of the most simplest yet illustrative algorithmic problems, namely the problem of Interval Scheduling. We will start with special case of unweighted interval scheduling, and then elaborate from there into a more general case of weighted intervals.