A case study with Malaria Anopheles reproduction modeling using an Individual Based Model (IBM) framework soundtrack:

Slides:



Advertisements
Similar presentations
Lecture 38: Chapter 7: Multiprocessors Today’s topic –Vector processors –GPUs –An example 1.
Advertisements

A Cellular Automata Approach to Population Modeling Alexa M. Silverman.
1 ITCS 4/5010 CUDA Programming, UNC-Charlotte, B. Wilkinson, Feb 26, 2013, DyanmicParallelism.ppt CUDA Dynamic Parallelism These notes will outline CUDA.
CITS4403 Computational Modelling Agent Based Models.
1 Stefano Redaelli LIntAr - Department of Computer Science - Unversity of Milano-Bicocca Space and Cellular Automata.
PEDESTRAIN CELLULAR AUTOMATA AND INDUSTRIAL PROCESS SIMULATION Alan Jolly (a), Rex Oleson II (b), Dr. D. J. Kaup (c) (a,b,c) Institute for Simulation and.
Cellular Automata (Reading: Chapter 10, Complexity: A Guided Tour)
Multi Agent Simulation and its optimization over parallel architecture using CUDA™ Abdur Rahman and Bilal Khan NEDUET(Department Of Computer and Information.
Data Parallel Algorithms Presented By: M.Mohsin Butt
CELLULAR AUTOMATON Presented by Rajini Singh.
From Natural to Artificial Systems Models of Competition and Cooperation By Rob Cranston, Walter Proseilo, Chau Trinh & Owen Pang.
 Parallel Computer Architecture Taylor Hearn, Fabrice Bokanya, Beenish Zafar, Mathew Simon, Tong Chen.
Towards A Multi-Agent System for Network Decision Analysis Jan Dijkstra.
Today’s Plan Introduction to Artificial Life Cellular Automata
Cellular Automata Avi Swartz 2015 UNC Awards Ceremony.
Nawaf M Albadia Introduction. Components. Behavior & Characteristics. Classes & Rules. Grid Dimensions. Evolving Cellular Automata using Genetic.
Parallelization: Conway’s Game of Life. Cellular automata: Important for science Biology – Mapping brain tumor growth Ecology – Interactions of species.
Agent Based Modeling and Simulation
Cellular Automata Modeling Environment & Library Lev Naumov
Discovery of Cellular Automata Rules Using Cases Ken-ichi Maeda Chiaki Sakama Wakayama University Discovery Science 2003, Oct.17.
The Role of Artificial Life, Cellular Automata and Emergence in the study of Artificial Intelligence Ognen Spiroski CITY Liberal Studies 2005.
1 An Introduction to Agent Based Modeling November 2002 Rosanna Garcia © R.Garcia, Northeastern University, 2002.
Multiscale Modelling Mateusz Sitko
HPC Technology Track: Foundations of Computational Science Lecture 2 Dr. Greg Wettstein, Ph.D. Research Support Group Leader Division of Information Technology.
Lukasz Grzegorz Maciak Micheal Alexis
Complex systems complexity chaos the butterfly effect emergence determinism vs. non-determinism & observational non-determinism.
Governor’s School for the Sciences Mathematics Day 13.
Elements of Computational Epidemiology a cellular automata framework for computational epidemiology fishy.com.br.
Pipeline And Vector Processing. Parallel Processing The purpose of parallel processing is to speed up the computer processing capability and increase.
Multiprocessing. Going Multi-core Helps Energy Efficiency William Holt, HOT Chips 2005 Adapted from UC Berkeley "The Beauty and Joy of Computing"
1 Cellular Automata and Applications Ajith Abraham Telephone Number: (918) WWW:
GPU Architectural Considerations for Cellular Automata Programming A comparison of performance between a x86 CPU and nVidia Graphics Card Stephen Orchowski,
Introduction to Lattice Simulations. Cellular Automata What are Cellular Automata or CA? A cellular automata is a discrete model used to study a range.
Cellular Automata Spatio-Temporal Information for Society Münster, 2014.
Cellular Automata Martijn van den Heuvel Models of Computation June 21st, 2011.
Model Iteration Iteration means to repeat a process and is sometimes referred to as looping. In ModelBuilder, you can use iteration to cause the entire.
Cellular Automata. John von Neumann 1903 – 1957 “a Hungarian-American mathematician and polymath who made major contributions to a vast number of fields,
Modeling the Effects of Greenbelts at the Urban-Rural Fringe Daniel G. Brown Scott E. Page Rick Riolo William Rand With funding from Biocomplexity First.
Geosimulation Geosimulation models are developed to represent phenomena that occur in urban systems in highly realistic manner In particular, Cellular.
Showcase /06/2005 Towards Computational Epidemiology Using Stochastic Cellular Automata in Modeling Spread of Diseases Sangeeta Venkatachalam, Armin.
Unifying Dynamical Systems and Complex Networks Theories ~ A Proposal of “Generative Network Automata (GNA)” ~ Unifying Dynamical Systems and Complex Networks.
Agent Based Modeling (ABM) in Complex Systems George Kampis ETSU, 2007 Spring Semester.
Introduction: Lattice Boltzmann Method for Non-fluid Applications Ye Zhao.
Neural Networks and Machine Learning Applications CSC 563 Prof. Mohamed Batouche Computer Science Department CCIS – King Saud University Riyadh, Saudi.
Crowds (and research in animation and games) CSE 3541 Matt Boggus.
M U N - February 17, Phil Bording1 Computer Engineering of Wave Machines for Seismic Modeling and Seismic Migration R. Phillip Bording February.
Cellular Automata Introduction  Cellular Automata originally devised in the late 1940s by Stan Ulam (a mathematician) and John von Neumann.  Originally.
An Agent Epidemic Model Toward a general model. Objectives n An epidemic is any attribute that is passed from one person to others in society è disease,
Application Software System Software.
제 4 주. Cellular Automata A Brief history of Cellular Automata P. Sarkar, ACM Computing Surveys, vol. 32, no. 1, pp. 80~107, 2000 학습목표 계산도구로서의 Cellular.
Conway’s Game of Life Jess Barak Game Theory. History Invented by John Conway in 1970 Wanted to simplify problem from 1940s presented by John von Neumann.
Parallel Processing Presented by: Wanki Ho CS147, Section 1.
These slides are based on the book:
Crowds (and research in computer animation and games)
Auburn University COMP8330/7330/7336 Advanced Parallel and Distributed Computing Parallel Hardware Dr. Xiao Qin Auburn.
A Level Computing – a2 Component 2 1A, 1B, 1C, 1D, 1E.
Chaotic Behavior - Cellular automata
Hiroki Sayama NECSI Summer School 2008 Week 3: Methods for the Study of Complex Systems Cellular Automata Hiroki Sayama
L – Modeling and Simulating Social Systems with MATLAB
A Cellular Automata Approach to Population Modeling
Illustrations of Simple Cellular Automata
Crowds (and research in computer animation and games)
Advantages of ABS An advantage of using computer simulation is that it is necessary to think through one’s basic assumptions very clearly in order to create.
Chapter 1 Introduction.
Taking Aim at Moving Targets in Computational Cell Migration
Multicore and GPU Programming
Von Neumann’s Automaton and Viruses
6- General Purpose GPU Programming
COMPUTER ORGANIZATION AND ARCHITECTURE
Multicore and GPU Programming
Presentation transcript:

A case study with Malaria Anopheles reproduction modeling using an Individual Based Model (IBM) framework soundtrack:

Epischisto.org History Projects 2

Definition of a Cellular Automaton Cellular automaton A is a set of four objects A =, where G – set of cells Z – set of possible cells states N – set, which describes cells neighborhood f – transition function, rules of the automaton: – Z |N|+1  Z (for automaton, which has cells “ with memory ” ) – Z |N|  Z (for automaton, which has “ memoryless ” cells)

Cellular automata - generic models for complex systems Definition of a Fuzzy Set Neighborhood of cell Ci,j is global SCA G i,j := {(C k,l, Υ C i,j, C k,l ) |for all C k,l Є C, 0 ≤ Υ C i,j, C k,l ≤ 1} C is a set of all cells in the CA. Υ C i,j, C k,l represents an interaction coefficient that controls all possible interactions between a cell Ci,j and its global neighborhood Gi,j. A function of inter-cell distance and cell population density.

Two-Dimensional Grids Cells that have a common edge with the involved are named as “ main neighbors ” of the cell (are showed with hatching) The set of actual neighbors of the cell a, which can be found according to N, is denoted as N(a)

Definition of the Rings Formally, if R(a, i) is a set of cells of i-th ring of cell a, then if N describes cells neighborhood as the set of its nearest neighbors, following formula will take place

Rings for Grid of … Different rings are showed with hatching or color

Definition of the Metrics Distance function D(a, b) for retrieving remoteness between cells a and b can be denoted as follows It is proved that this function satisfies to all metrics properties The notion of ring may be generalized for multi- dimensional grids and the distance function, given by last formula, will remain the same

9 Difference Between ABM & CA Cellular automata (CAs) are always homogeneous and uniformly densely populated on the grid (all cells are identical), whereas in ABM the agents are heterogeneous and do not necessarily occupy all spaces within the grid. CAs frequently won’t interact with agents outside their immediate ‘neighborhood’

10 Agent Based Modeling Computer simulation that represents individual actors in a dynamic social system. ‘Agents’ represent heterogeneous individuals who interact with each other and/or their environment based on set rules. From these interactions, macro-scale behaviors may emerge.

11 Agents Agents have:  Internal data representations (memory or state)  Means for modifying their internal data representations (perceptions)  Means for modifying their environment (behaviors) Copyright © 2000 by Swarm Development Group

12 CA Diffusion Model with ‘Seeds’ Influence Level = -2 Indifference Point = 0 SUM (Surrounding Squares) = 2(-2 ) + 5(1) –1 = 0 Therefore: cell remains negative Excel-Example

13 Netlogo This particular cellular automaton is called the Parity Model. There is only one rule, which all the cells follow. The rule is that each cell looks at its four neighbours (the ones immediately to its left, right, above and below) and if an odd number of them (that is, 1 or 3) of them are 'on', it switches itself 'on'. If there are an even number 'on' (2 or 4), it switches itself off. by Nigel Gilbert (Submitted: 9/15/2002 )

14 Ascape In Ascape, agent objects exist within scapes; collections of agents such as arrays and lattices. These scapes are themselves agents, so that typical Ascape models are made up of "collections of collections" of agents. Ascape manages graphical views and collection of statistics for scapes and provides mechanisms for controlling and altering parameters for scape models.

15 Starlogo/Sugarscape StarLogo is a programmable modeling environment for exploring the workings of decentralized systems -- systems that are organized without an organizer, coordinated without a coordinator. With StarLogo, you can model (and gain insights into) many real-life phenomena, such as bird flocks, traffic jams, ant colonies, and market economies.

16 RePast/Sugarscape The name RePast is an acronym for REcursive Porous Agent Simulation Toolkit. Our goal with RePast is to move beyond the representation of agents as discrete, self-contained entities in favor of a view of social actors as permeable, interleaved and mutually defining, with cascading and recombinant motives. We intend to support the modeling of belief systems, agents, organizations and institutions as recursive social constructions.

17 SWARM Swarm is a software package for multi-agent simulation of complex systems, originally developed at the Santa Fe Institute. Swarm is intended to be a useful tool for researchers in a variety of disciplines. The basic architecture of Swarm is the simulation of collections of concurrently interacting agents: with this architecture, we can implement a large variety of agent based models.

18 AgentSheets AgentSheets is an authoring tool that allows non-programmers to create agents with behaviors and missions, teach agents to react to information and process it in personalized ways, and combine agents to create sophisticated interactive simulations and models. Our customers use AgentSheets to create interactive games, virtual worlds, training simulations, information gathering and personalizing agents, and other interactive content.

Why Python? Timeline of General Purpose Programming Languages… 2012 programming languages in progress… 19

Python… Simple – Python is a simple and minimalistic language in nature – Reading a good python program should be like reading English – Its Pseudo-code nature allows one to concentrate on the problem rather than the language Easy to Learn Free & Open source – Freely distributed and Open source – Maintained by the Python community High Level Language –memory management Portable – *runs on anything c code will PyCUDA - parallel programming using CUDA 20

What is Parallel Programming? Single Data Stream Multiple Data Stream Single Instruction Stream SISD uniprocessors SIMD Processor arrays Multiple Instruction Stream MISD Systolic arrays MIMD Multiprocessors multicomputers 21

A Framework for Megascale Agent Based Model Simulations on GPU Journal of Artificial Societies and Social Simulation vol. 11, no

Installing Python, Packages, CUDA NVIDIA hardware Python – packages CUDA Windows X Linux? Bill Gates!!!! project-mosimbio/python-for-scientific-computing 23

Malaria Vector - Life Cycle [

Eckhooff Malaria Journal 2011, 10:303 S.J. de Almeida et al. Environmental Modeling & Software 25(2010), Silver, John B. Mosquito Ecology – Field Sampling Methods. Springer, 3rd Edition, Malaria Vector – life periods

Mosquito – individual as an object in Python A python object “Objects are Python’s abstraction for data. All data in a Python program is represented by objects or by relations between objects. (In a sense, and in conformance to Von Neumann’s model of a “stored program computer,” code is also represented by objects.)” class mosquito: def __init__(self, sex, eggstate, stage, state, energy, fertility, positionX, positionY): self.sex = sex #sex of the mosquito self.eggs = eggstate #level of development of eggs self.stage = stage #stage of life of the mosquito self.state = state #state of a mosquito self.energy = energy #energy level of the mosquito self.fertility = fertility #fertility of the mosquito self.positionX = positionX #coordinate X at the world self.positionY = positionY #coordinate Y at the world 26

Mosquito – IBM Parameters INDIVIDUAL states_of_a_mosquito = 5 #Mosquito Status: 0- mating, 1- feeding, 2- digesting, 3- ovoposition (females), 4- hatching (females) stages_of_life_cycle = 5 #Mosquito Stage: 0- egg, 1- larva, 2- pupa, 3- young, 4- adult energy_level_of_a_mosquito = 4 #Energy level: 0- no energy (dead), 1- low, 2- medium, 2- high, 3- full sex_of_a_mosquito = 2 #Sex: 0- male, 1- female fertility_of_a_mosquito = 2 #fertility: 0- sterile, 1- fertile development_of_eggs_of_a_mosquito = 4 #Eggs: 0-no eggs (males), 1- incomplete, 2- in process, 3- complete size_of_mosquito_population = #total mosquitoes in the world ENVIRONMENT #states_of_a_human = 4 #SEIR: 0-susceptible, 1-exposed, 2-infected, 3-recovered human_population = (500) #total humans in the world time_to_simulate = # 1440 minutes in a day, minutes in a month, minutes in a year... n-dimensional world x,y,... – tam_world_y = tam_world_y = 10 states_of_a_cell = 2 #water: 0-no water, 1-water max_human_population_per_cell = (5) #max amount of humans in a cell of the world max_animal_population_per_cell = (4) #max amount of animals in a cell of the world 27

Mosquito – IBM Parameters (cont.) Days_between_feeds = 3 Female_eggs_per_female_oviposition = 100 Adult_life_expectancy = 10 Duration_of_immature = 4 Temperature_of_cell = [12..34] 28

Mosquito – Functionalities def grow_up(self) #birth … death def feed(self) #adult state def digest(self) #adult state def mate(self) #adult state def lay_eggs(self) #female no sterile state def hatch(self) #eggs state 29

Computation of the individuals 30 N-dimensional parameters of a cell Cell of the world Composition of the N-dimensional matrices of parameters water human animals

Works… The World of the Mosquitoes dimensional parameters: water, human, animal, indoor/outdoor [array([[1, 0, 0, 0, 0, 0, 0, 1, 1, 1], [0, 0, 1, 0, 1, 1, 0, 1, 0, 0], [0, 0, 1, 1, 1, 1, 1, 0, 1, 0], [1, 1, 1, 1, 0, 0, 1, 1, 0, 0], [1, 0, 0, 0, 0, 0, 0, 1, 1, 0], [0, 0, 0, 1, 1, 0, 1, 1, 1, 1], [1, 1, 0, 0, 1, 0, 0, 1, 1, 0], [0, 0, 1, 0, 1, 1, 1, 0, 0, 1], [0, 1, 1, 0, 0, 1, 0, 1, 1, 1], [0, 0, 1, 1, 0, 1, 0, 0, 1, 1]]), array([[3, 1, 2, 2, 4, 1, 4, 3, 3, 4], [3, 0, 4, 0, 1, 0, 0, 3, 4, 4], [0, 2, 2, 2, 4, 0, 0, 2, 1, 0], [0, 2, 0, 1, 2, 1, 1, 3, 4, 0], [3, 3, 4, 3, 4, 4, 2, 0, 4, 1], [4, 0, 0, 2, 3, 2, 0, 1, 2, 0], [2, 2, 0, 4, 3, 1, 2, 1, 1, 0], [3, 4, 1, 2, 4, 4, 1, 4, 4, 1], [3, 3, 4, 1, 4, 2, 2, 4, 4, 3], [3, 4, 0, 4, 1, 4, 0, 4, 0, 2]]), array([[1, 2, 2, 0, 2, 3, 0, 3, 0, 3], : Hola! Yo soy un(a) mosquito joven y soy varon y fertile y estoy en la cell ( 6, 3 ) del mundo de Jones! : Hola! Yo soy un(a) pupa y soy hembra y sterile y estoy en la cell ( 2, 5 ) del mundo de Jones! : Hola! Yo soy un(a) egg y fertile y estoy en la cell ( 2, 6 ) del mundo de Jones! : Hola! Yo soy un(a) egg y sterile y estoy en la cell ( 8, 7 ) del mundo de Jones! : Hola! Yo soy un(a) mosquito adulto y soy hembra y fertile y estoy a poner ovos en la cell ( 9, 9 ) del mundo de Jones!

Simulations Reproduction cycle: – Water and no water – Indoor and outdoor – Fertile and no fertile – Temperature varying – ??????? To talk to THE entomologist… 32

Comparing results… 33 WATER RESOURCES RESEARCH, VOL. 44, W12445, doi: /2008WR006917, 2008 Hydrology of malaria: Model development and application to a Sahelian village

Some results 34 Comparing mosquito quantity (temperature varying in 0,5) simulated With WATER RESOURCES RESEARCH, VOL. 44, W12445, doi: /2008WR006917, 2008 Do we need real experiment…?

GPU vs CPU running IBM´s simple problems 35 SpeedUp = Exec time CPU Exec time GPU GPU 2Processors 2.12 faster than CPU! In a SONY VAIO CORE i5 NVIDIA GEFORCE SpeedUp superlinear!! Pero…

Considerations CUDA is simple, cheap and easy! 2 months Python is simple, free, easy 2 months Environment configuration is complex Mosquito behavior is more complex! 36