Parallel Computing – An Introduction

Parallel Computing – An Introduction Parallel Computing is a form of computation in which many calculations are carried out simultaneously, operating on the principle that large problems can often be divided into smaller ones, which are then solved concurrently (“in parallel”). The core motivation for parallelizing is speeding up computing tasks.1. Types of ParallelismThere are…

0

Map/Reduce – in Functional Programming & Parallel Processing Perspectives

Map/Reduce – in Functional Programming & Parallel Processing Perspectives Map/Reduce is a very popular term pair in today’s technical community, mainly due to the popularity of its “inventor” – Google.But in fact, the terms and concepts of map & reduce exist in programming language community long before G company’s successful paper “MapReduce: Simplified Data Processing…

0

Parallel DBMS V.S. Distributed DBMS

Parallel DBMS V.S. Distributed DBMS  Large Scale Data Intensive Computing is a hot topic today, many people starts to talk so called Parallel Database System and Distributed Database System technologies. But these two concepts seem very confusing, so I devoted sometime to try to make it clear.Parallel Database System seeks to improve performance through parallelization…

0

Consistent Hashing – Theory & Implementation

Consistent Hashing – Theory & Implementation What’s it?The consistent hashing comes from the solving of hot spot problem in Internet system, I.E., it comes from the distributed cache system. [1][2]The idea is simple and straight forward (more detail in paper[1][2]):Hot Spot -> Centric Cache -> Distributed Cache (Communicate using IP Multicast) -> Harvest Cache(Tree Structure…

0

I/O Concept – Blocking/Non-Blocking VS Sync/Async

I/O Concept – Blocking/Non-Blocking VS Sync/Async   These concepts are discussed in the context of WinSock, but the basic ideas can be applied to other I/O types and also on other OS, such as Linux/Unix world as well.I – Blocking V.S. Non-Blocking  Under blocking mode, socket I/O operations, connect and accept operations all block until the operation…

0

Winsock I/O Model – Part II : Implementation

Winsock I/O Model – Part II : Implementation In the previous post[6], I summarized several scalable network I/O models in theory. In this article, I will give concrete code to show how to use each model to build a scalable network server. Building scalable server is a challenging task and needs a lot of considerations,…

1

Winsock I/O Model – Part I : Concept

Winsock I/O Model – Part I : Concept The basic steps to do windows socket programming are simple and straightforward: Server Side   Initialize Winsock. Create a socket. Bind the socket. Listen on the socket for a client. Accept a connection from a client. Receive and Send data. Disconnect. Client Side   Initialize Winsock. Create…

4

Inside Scalable I/O Model – In Sync & Async Way

Inside Scalable I/O Model – In Sync & Async Way   The so called “I/O Model” describes how you write code to accomplish I/O tasks, such as connecting to a server, writing data to disk, receiving data from network etc. Programmatically accomplishing I/O tasks is far more complicated than just calling a single related OS API,…

0

Implementing Consistency – Protocols for Data Replication and Cache Coherence

Various concrete consistency models have been described in [1], now it’s time to discuss how to implement these models.Consistency semantic is divided into two categories in [1] – “Coherence and Replication are very similar concepts and deal with the same problem, but the former is often used in hardware system (for example, in SMP Cache…

0

Consistency Model – A Survey

Part I – What’s Data Consistency Model and Why Should We Care?Data Consistency Model – it is a Semantic Contract between a data storage system and its user. Here, data storage system may refer to hardware system ( for example : memory sub-system inDSM, SMP, CMP computers) , or software systems (for example: distributed file…

0