Skip to content

Instantly share code, notes, and snippets.

View toff63's full-sized avatar

Christophe Marchal toff63

View GitHub Profile
@toff63
toff63 / cuda-lt.md
Created October 19, 2014 19:06
Notes for preparing my Lightning talk about CUDA

CUDA

Diference between GPU and CPU

CPU are optimized for sequencial processing. It fits most of the normal application as they don't execute in parallel very well. At least they weren't though like that. CPU usually have between 4 and 16 cores for paralelization. GPU are optimized for highly parallel tasks. Usually, each task is quite small but can be executed in parallel.

The basic idea of CUDA is to help developer to make the best use of CPU and GPU. Any thing that can be processed in parallel is best processed by GPU while sequencial algorithm is best executed on CPU.

@toff63
toff63 / Preparacao-Dojo-24-de-Setembro.md
Last active August 29, 2015 14:06
Resumo das pesquisas feitas em cima de 3 assuntos: Futuro do BigData Atendimento ao Cliente Motivacao 2.0

#Futuro do BigData

Big data is a buzz words that doesn't mean much anymore. What is important is what we want to do with the data. Usually, we want to discover information that comes from crossing those data. When the movement started, we only have one kind of transformation available: Map Reduce. As the biggest challenge is to bring the algorithm where the data is and bring the data from its initial place to a storage that can allow the algorithm to run. With YARN, other algorithms can now run on top of Petabytes of data, that's why we see so much focus on query languages. A query language needs to be parsed, which lead to graphs structures and algorithms. As those kind of algorithm now can run on top of big data, a lot of effort are being made to have SQL running fast: subsecond queries on petabytes of data.

The data ingestion is also a challenge. How do you ingest million of rows per seconds keeping the system consistent? Instead of using 2 Phase commit kind of transaction, you start using Highly Availa

@toff63
toff63 / Kafka
Created December 22, 2013 20:37
Confraria dos arquitetos:Stream vs CEP
Kafka: A high-throughput distributed messaging system.
Publish-subscribe messaging as a distributed commit log
Fast: hundreds of megabytes of reads and writes per second from thousands of clients
Scalable: designed to be a central data backbone for large organization. Data streams are partitionned and spread over a cluster of machines
Durable: Message persisted on disk and replicated within the cluster to prevent data loss. Each broker can handle terabytes of messages without performance impact.
Manifest-Version: 1.0
Bnd-LastModified: 1375793296335
Build-Jdk: 1.6.0_30
Built-By: Avell G1511
Bundle-Activator: net.francesbagual.osgi.osgi_hello_world.Activator
Bundle-ManifestVersion: 2
Bundle-Name: osgi-hello-world OSGi Bundle
Bundle-SymbolicName: net.francesbagual.osgi.hello-world
Bundle-Version: 0.0.2.SNAPSHOT
Created-By: Apache Maven Bundle Plugin

#Complex Event Processing

#Concept

You need to create a system that has flow of events as input. Based on those events your system will either recognize pattern and take action or process an online algorithm.

(ns immutant.init
(:use hello-world.core)
(:require [ring.middleware.session :as ring-session]
[immutant.web.session :as immutant-session]
[immutant.messaging :as messaging]
[immutant.web :as web]
))
(web/start "/" ring-handler)

Immutant Web

Immutant provides a session implementation that provides automatic data sharing across nodes in a cluster.

You can have more than 1 web-app deployed in the same container. Each web app having it's own ring handler and context path

Context

Define context in the project.clj:

Hierarchical data structure in database

Definition

Taxonomy: the conception, naming, and classification of organism groups.

Ontology: ontology formally represents knowledge as a set of concepts within a domain, and the relationships between pairs of concepts. It can be used to model a domain and support reasoning about entities. Ontologies are the structural frameworks for organizing information

Relational Database

Datomic:
Store facts that are immutable.
Access via a Peer Library with extensive caching (LRU)
Add new facts using transactor that will take care of ACID properties and inform all peers that a new fact is available.
Data power into application
Why Datomic

ZvZ LTO Build Order

  • 9 overlord

  • 15 hatch

  • 14/15 pool, depending on the map

  • 17 overlord

  • 19 double queen