Posts

Showing posts from February, 2017

Programming with Apache Spark and Cassandra -draft

Putting the knowledge gained so far in this  and frequent questions that many may ask and what we have asked ourselves. 1.1What is the need for using Spark ? Spark gives you horizontal scale ability in a programmer friendly way. 1.2But what about other options ? There are other options as well. I have listed them below, which describes and highlights Sparks place in the architecture
Type Level of Granularity Descritpion LoadBalancer (nginx,haproxy) Request Level (usually HTTP requests) Works well for Request-response type client server protocols. Works also well in context of microservices in application program side However to scale the processing insdie the application programs this is inadequate Task Managers (celery, other MQ based) Task Level Helps to scale processing in the application program.Takes care of Task handling. However the onus is on the developer to split application logic to independent tasks. Usually only the simplest things are really split into tasks. Equal…

Compiling OpenCV with CUDA (GPU) using CMake (GUI)

Image
I have a tendency to choose the exact wrong thing every time when given a choice; I have sometimes wondered why.  A good thing with doing things almost wrong is that you get to learn about things.I have a feeling that doing things wrong and getting feedback and correcting is somehow fundamental in the way learning process happens.
However hot this article  will save you some time and some hair pulling. I started out with Windows and then Linux, but most thing are common.

Before we start, just a very short introduction into the why part,trust me just the bare essentials.

OpenCV operates on images , which in computers (at least the ones we have now) is stored a pixel matrices. Various algorithms that opencv provides, for example for object detection for example does a lot of matrix operations. These operations are 'embarrassingly parallel' -data parallel and could be speeded if executed in the GPU.

Now NVDIA GPU have an  parallel programming  API called CUDA which can help in s…