Lab-STICC, UMR 6285, CNRS, Dépt Informatique, Université de Brest

Slides:



Advertisements
Similar presentations
European Workshop on Grid-based Virtual Organisations & collaborative e-Enterprise applications Toan NGUYEN May 30th, 2003 London (UK) Business models,
Advertisements

Self-Organised information PrOcessing, CriticaLity and Emergence in multilevel Systems Alfons Hoekstra
Multiscale Stochastic Simulation Algorithm with Stochastic Partial Equilibrium Assumption for Chemically Reacting Systems Linda Petzold and Yang Cao University.
GPU Workshop: July, 2010 Scott Briggs PhD Candidate Civil/Env. Engineering Contaminant Hydrogeology Supervisors: B. E. Sleep and B. W. Karney.
An Introduction to Multiscale Modeling Scientific Computing and Numerical Analysis Seminar CAAM 699.
Parallelization of Tau-Leap Coarse-Grained Monte Carlo Simulations on GPUs Lifan Xu, Michela Taufer, Stuart Collins, Dionisios G. Vlachos Global Computing.
Research and objectives Modern software is incredibly complex: for example, a modern OS has more than 10 millions lines of code, organized in 10s of layers!
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
Particle Systems GPU Graphics. Sample Particle System Fire and SmokeWater.
Copyright © 2009 Pearson Education, Inc., publishing as Pearson Benjamin Cummings C h a p t e r 1 An Introduction to Anatomy and Physiology.
Big Kernel: High Performance CPU-GPU Communication Pipelining for Big Data style Applications Sajitha Naduvil-Vadukootu CSC 8530 (Parallel Algorithms)
Computing Platform Benchmark By Boonyarit Changaival King Mongkut’s University of Technology Thonburi (KMUTT)
Parallelization: Conway’s Game of Life. Cellular automata: Important for science Biology – Mapping brain tumor growth Ecology – Interactions of species.
OpenCL Introduction A TECHNICAL REVIEW LU OCT
AGENT SIMULATIONS ON GRAPHICS HARDWARE Timothy Johnson - Supervisor: Dr. John Rankin 1.
Notes on Modeling with Discrete Particle Systems Audi Byrne July 28 th, 2004 Kenworthy Lab Meeting Deutsch et al.
ITEC 502 컴퓨터 시스템 및 실습 Chapter 8-2: I/O Management (Review) Mi-Jung Choi DPNM Lab. Dept. of CSE, POSTECH.
Introduction to CUDA (1 of 2) Patrick Cozzi University of Pennsylvania CIS Spring 2012.
Swapping to Remote Memory over InfiniBand: An Approach using a High Performance Network Block Device Shuang LiangRanjit NoronhaDhabaleswar K. Panda IEEE.
Tutor: Prof. Lucia Pomello Supervisors: Prof. Giancarlo Mauri Dr. Luciano Milanesi PhD Thesis Proposal Membrane systems: a framework for stochastic processes.
Sketch Outline Ising, bio-LGCA and bio-Potts models Potts model general description computational description Examples of ‘energies’ (specifying interactions)
NIH Resource for Biomolecular Modeling and Bioinformatics Beckman Institute, UIUC NAMD Development Goals L.V. (Sanjay) Kale Professor.
An FPGA Implementation of the Ewald Direct Space and Lennard-Jones Compute Engines By: David Chui Supervisor: Professor P. Chow.
Introduction: Lattice Boltzmann Method for Non-fluid Applications Ye Zhao.
Biochemical Reactions: how types of molecules combine. Playing by the Rules + + 2a2a b c.
Anton, a Special-Purpose Machine for Molecular Dynamics Simulation By David E. Shaw et al Presented by Bob Koutsoyannis.
Implementation and Optimization of SIFT on a OpenCL GPU Final Project 5/5/2010 Guy-Richard Kayombya.
Smoothed Particle Hydrodynamics Matthew Zhu CSCI 5551 — Fall 2015.
Haptic Deformation Modelling Through Cellular Neural Network YONGMIN ZHONG, BIJAN SHIRINZADEH, GURSEL ALICI, JULIAN SMITH.
V.M. Sliusar, V.I. Zhdanov Astronomical Observatory, Taras Shevchenko National University of Kyiv Observatorna str., 3, Kiev Ukraine
SWM: Simplified Wu-Manber for GPU- based Deep Packet Inspection Author: Lucas Vespa, Ning Weng Publisher: The 2012 International Conference on Security.
Matthew Royle Supervisor: Prof Shaun Bangay.  How do we implement OpenCL for CPUs  Differences in parallel architectures  Is our CPU implementation.
 155 South 1452 East Room 380  Salt Lake City, Utah  This research was sponsored by the National Nuclear Security Administration.
Multi-Agents Systems and environment modelling…
Zorua: A Holistic Approach to Resource Virtualization in GPUs
CS 179: GPU Programming Lecture 1: Introduction 1
Scientific Modeling in Biology: Professional Development for High School Teachers K. Christian CSM 610 Spring 2017.
Thank you, chairman for the kind introduction. And hello, everyone.
International Institute of Information Technology, Hyderabad
UNIT – I Linked Lists.
I. E. Venetis1, N. Nikoloutsakos1, E. Gallopoulos1, John Ekaterinaris2
A Stochastic Model of Cell Differentiation
Mathematical modeling of cryogenic processes in biotissues and optimization of the cryosurgery operations N. A. Kudryashov, K. E. Shilnikov National Research.
The Problem Finding a needle in haystack An expert (CPU)
University of Technology
CS 179: GPU Programming Lecture 1: Introduction 1
Improving java performance using Dynamic Method Migration on FPGAs
Implementing Simplified Molecular Dynamics Simulation in Different Parallel Paradigms Chao Mei April 27th, 2006 CS498LVK.
Waves!.
CSE-591 Compilers for Embedded Systems Code transformations and compile time data management techniques for application mapping onto SIMD-style Coarse-grained.
What we need to be able to count to tune programs
Hybrid computing using a neural network with dynamic external memory
Join Processing in Database Systems with Large Main Memories (part 2)
MASS CUDA Performance Analysis and Improvement
CS 179: Lecture 12.
Optimizing MapReduce for GPUs with Effective Shared Memory Usage
GENERAL VIEW OF KRATOS MULTIPHYSICS
CPHT-Ecole polytechnique
Virtual Memory Hardware
Operating Systems : Overview
Operating Systems : Overview
Operating Systems : Overview
©Sudhakar Yalamanchili and Jin Wang unless otherwise noted
Fully-dynamic aimGraph
Operating Systems : Overview
Department of Computer Science, University of Tennessee, Knoxville
GPU accelerated application tracing
Section 1-2 Levels of organization
CSCE 206 Lab Structured Programming in C
Parallel computing in Computational chemistry
Presentation transcript:

Lab-STICC, UMR 6285, CNRS, Dépt Informatique, Université de Brest Gestion efficace des ressources mémoire et de calcul pour l’exécution de système multi-agents sur architectures parallèles avec OpenCL Anne Jeannin-Girardon, Vincent Rodin Lab-STICC, UMR 6285, CNRS, Dépt Informatique, Université de Brest Compas’2016, vincent.rodin@univ-brest.fr

Virtual Reality  Virtual Biology Lab-STICC, CID, IHSEV Virtual Reality  Virtual Biology Multi-Agent System approach Interaction between virtual cells and/or molecules

Context (1/3)

Context (2/3) Our approach is hybrid population level individual level (Molecular Virtual Chemistry) individual level (Virtual Cells)

Context (3/3) From a computational point of view, the work presented today is an improvement of Anne Jeannin-Girardon Ph.D thesis, 2014 Anne Jeannin-Girardon et al, IEEE/ACM Transaction on Computational Biology and Bioinformatics, 2015

Outline Introduction  Morphogenesis & Dynamicity Virtual Biological Model  Virtual Cell, Molecular Virtual Chemistry, Virtual Growth Parallel implementation  OpenCL, model coupled with a MAS How to get a new Id for a new Virtual Cell? Results

Tissue morphogenesis: Introduction (1/1) Tissue morphogenesis: Sub-cellular/ molecular processes Cell/Cell & cell/ECM interactions Tissular level processes Macroscopic scale Mesoscopic Microscopic Is a multi-scale phenomenon Can be addressed through continuous & discrete models Involves many of interacting entities (cells, molecules, etc.) Implies birth and death of cells  dynamicity

Virtual Biological Model (1/3) Virtual Cell Structure: mass/spring system n+1 nodes membrane, cytoskeleton, cortex cell deformation Mitose orientated mitosis given an axis Cell adhesion/repulsion differential interaction

Virtual Biological Model (2/3) Molecular Virtual Chemistry Molecular level modelled with diffusion/reaction equations δi(x,t) δt = Di Δi(x,t) – Ri(x,t) Set of molecules. Ex: {A, B,C} Set of reactions. Ex: {2A + B  C} Set of 2D discrete layers. One grid layer per molecule type Equations solved in 2 steps: 1) diffusion 2) reaction

Virtual Biological Model (3/3) Virtual Growth D TC TA A B TB C TD produces consumes Dynamicity

do you know that you are not in a bioinformatics conference today? Hey Vincent, do you know that you are not in a bioinformatics conference today?

Parallel implementation (1/2) Parallel hardware and device are everywhere Parallel programing gets easier Numerous parallel frameworks are available Our model seems well adapted to parallel implementation We choose to use the OpenCL framework to implement it  we can use CPUs, GPUs, FPGAs, etc.

Parallel implementation (2/2) Fine grained implementation: a cell = an OpenCL core  model coupled with a Multi-Agent System Kernel k1: computes forces Kernel k2: integrates forces (Euler method) Data stored into structures of arrays: nodes, etc.  adapted data structure for OpenCL: a cell = an id Question: How to find a new Id for a new Virtual Cell?

How to get a new Id ? (1/3) 0 1 2 N-1 N (± 106) Virtual Cells : structures of arrays Active or Inactive Node 0 Node 1 Node 5 Node C Etc. At the beginning of the simulation… easy!

How to get a new Id ? (1/3) 0 1 2 N-1 N (± 106) Virtual Cells : structures of arrays Active or Inactive Node 0 Node 1 Node 5 Node C Etc. After births and deaths….?

How to get a new Id ? (2/3) Some previous works (1): [Lysenko & D’Souza, 2008] 0 1 2 N-1 Active or Inactive Attributes A stochastic method: A random choise happens… …until an inactive element is obtained! Main drawback: What appends if the memory is nearly full?

How to get a new Id ? (2/3) Some previous works (2): [Jeannin-Girardon, Ph.D, 2014] [Jeannin-Girardon et al, TCBB, 2015] 0 1 2 N-1 Active or Inactive Attributes A hybrid method: Dynamic switch : Stochastic Method & Parallel Sort

How to get a new Id ? (2/3) Some previous works (2): [Jeannin-Girardon, Ph.D, 2014] [Jeannin-Girardon et al, TCBB, 2015] 0 1 2 N-1 Active or Inactive Attributes 0 1 2 N-1 A hybrid method: Dynamic switch : Stochastic Method & Parallel Sort Main drawbacks: - How to choose the thresholds to switch? - Parallel sort… data transfers

How to get a new Id ? (3/3) Our proposition (1): [Jeannin-Girardon et al, Compas, 2016] 0 1 2 N-1 Active or Inactive Attributes Available Indexes are stored in two buffers & atomic_inc PtrAllocation 0 1 2 N-1 Allocation 0 1 2 3 … … … … … … … … N-1 Deallocation -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 PtrDeallocation

How to get a new Id ? (3/3) Our proposition (1): [Jeannin-Girardon et al, Compas, 2016] 0 1 2 N-1 Active or Inactive Attributes Available Indexes are stored in two buffers & atomic_inc PtrAllocation 0 1 2 N-1 Allocation -1 1 2 3 … … … … … … … … N-1 Deallocation -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 PtrDeallocation

How to get a new Id ? (3/3) Our proposition (1): [Jeannin-Girardon et al, Compas, 2016] 0 1 2 N-1 Active or Inactive Attributes Available Indexes are stored in two buffers & atomic_inc PtrAllocation 0 1 2 N-1 Allocation -1 -1 2 3 … … … … … … … … N-1 Deallocation -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 PtrDeallocation

How to get a new Id ? (3/3) Our proposition (1): [Jeannin-Girardon et al, Compas, 2016] 0 1 2 N-1 Active or Inactive Attributes Available Indexes are stored in two buffers & atomic_inc PtrAllocation 0 1 2 N-1 Allocation -1 -1 -1 3 … … … … … … … … N-1 Deallocation -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 PtrDeallocation

How to get a new Id ? (3/3) Our proposition (1): [Jeannin-Girardon et al, Compas, 2016] 0 1 2 N-1 Active or Inactive Attributes Available Indexes are stored in two buffers & atomic_inc PtrAllocation 0 1 2 N-1 Allocation -1 -1 -1 3 … … … … … … … … N-1 Deallocation 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 PtrDeallocation

How to get a new Id ? (3/3) Our proposition (1): [Jeannin-Girardon et al, Compas, 2016] 0 1 2 N-1 Active or Inactive Attributes Available Indexes are stored in two buffers & atomic_inc PtrAllocation 0 1 2 N-1 Allocation -1 -1 -1 3 … … … … … … … … N-1 Deallocation 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 PtrDeallocation

How to get a new Id ? (3/3) Our proposition (1): [Jeannin-Girardon et al, Compas, 2016] 0 1 2 N-1 Active or Inactive Attributes Available Indexes are stored in two buffers & atomic_inc PtrAllocation 0 1 2 N-1 Allocation -1 -1 -1 3 … … … … … … … … N-1 Deallocation 1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 PtrDeallocation

How to get a new Id ? (3/3) Our proposition (1): [Jeannin-Girardon et al, Compas, 2016] 0 1 2 N-1 Active or Inactive Attributes Available Indexes are stored in two buffers & atomic_inc PtrAllocation 0 1 2 N-1 Allocation -1 -1 -1 3 … … … … … … … … N-1 Deallocation 1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 PtrDeallocation

How to get a new Id ? (3/3) SWAP Our proposition (1): [Jeannin-Girardon et al, Compas, 2016] 0 1 2 N-1 Active or Inactive Attributes Available Indexes are stored in two buffers & atomic_inc PtrAllocation 0 1 2 N-1 Allocation SWAP -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 Deallocation 1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 PtrDeallocation

How to get a new Id ? (3/3) Our proposition (1): [Jeannin-Girardon et al, Compas, 2016] 0 1 2 N-1 Active or Inactive Attributes Available Indexes are stored in two buffers & atomic_inc PtrAllocation 0 1 2 N-1 Allocation 1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 Deallocation -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 PtrDeallocation

How to get a new Id ? (3/3) Our proposition (2): [Jeannin-Girardon et al, Compas, 2016] res = atomic_inc(var): OpenCL atomic operation  tmp=var; var++; return tmp Allocation: Ptr = atomic_inc(PtrAllocation) If Ptr < N and Allocation[Ptr] != -1 Then Id = Allocation[Ptr] Allocation[Ptr] = -1 Return Id Endif Deallocation: Ptr = atomic_inc(PtrDeallocation) Desallocation[Ptr] = Id PtrAllocation 0 1 2 N-1 Allocation 1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 Deallocation -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 PtrDeallocation

How to get a new Id ? (3/3) SWAP SWAP Our proposition (3): [Jeannin-Girardon et al, Compas, 2016] Swap conditions: PtrAllocation 0 1 2 N-1 Allocation SWAP -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 Deallocation 1 2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 1 2 N-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 Allocation Deallocation PtrAllocation 3 5 4 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 SWAP

Results: Prey-Predator model (1/2) High dynamicity…

Results: Prey-Predator model (2/2) Hybrid method Double buffer method

Questions ?