Hardware Accelerated Interactive Data Visualization For -Books Pdf

Hardware accelerated interactive data visualization for
14 Dec 2019 | 32 views | 0 downloads | 9 Pages | 1.38 MB

Share Pdf : Hardware Accelerated Interactive Data Visualization For

Download and Preview : Hardware Accelerated Interactive Data Visualization For

Report CopyRight/DMCA Form For : Hardware Accelerated Interactive Data Visualization For


Rossant and Harris Hardware accelerated visualization in Python. and OpenGL We give a brief high level overview of the OpenGL. pipeline before describing how programmable shaders originally. designed for custom 3D rendering effects can be highly advanta. geous for data visualization Bailey 2009 Finally we apply these. techniques to the visualization of neurophysiological data. 2 1 THE OPENGL PIPELINE, A GPU contains a large number hundreds to thousands of exe. cution units specialized in parallel arithmetic operations Hong. and Kim 2009 This architecture is well adapted to realtime. graphics processing Very often the same mathematical operation. is applied on all vertices or pixels for example when the cam. era moves in a three dimensional scene the same transformation. matrix is applied on all points This massively parallel architecture. explains the very high computational power of GPUs. OpenGL is the industry standard for real time hardware. accelerated graphics rendering commonly used in video games. and 3D modeling software Woo et al 1999 This open specifi. cation is supported on every major operating system 5 and most. devices from the three major GPU vendors NVIDIA AMD. Intel Jon Peddie Research 2013 This is a strong advantage of. OpenGL over other graphical APIs such as DirectX a proprietary. technology maintained by Microsoft or general purpose GPU. programming frameworks such as CUDA a proprietary tech. nology maintained by NVIDIA Corporation Scientists tend to. favor open standard to proprietary solutions for reasons of vendor. lock in and concerns about the longevity of the technology. OpenGL defines a complex pipeline that describes how 2D 3D. data is processed in parallel on the GPU before the final image is. rendered on screen We give a simplified overview of this pipeline. here see Figure 1 In the first step raw data typically points in. the original data coordinate system are transformed by the vertex. processor into 3D vertices Then the primitive assembly creates. points lines and triangles from these data During rasterization. these primitives are converted into pixels also called fragments. Finally those fragments are transformed by the fragment proces. sor to form the final image, An OpenGL Python wrapper called PyOpenGL allows the. creation of OpenGL based applications in Python Fletcher and. Liebscher 2005 A critical issue is performance as there is a slight. overhead with any OpenGL API call especially from Python This. problem can be solved by minimizing the number of OpenGL. API calls using different techniques First multiple primitives of. the same type can be displayed efficiently via batched rendering. FIGURE 1 Simplified OpenGL pipeline Graphical commands and data. Also PyOpenGL allows the transfer of potentially large NumPy go through multiple stages from the application code in Python to the. arrays Van Der Walt et al 2011 from host memory to GPU screen The code calls OpenGL commands and sends data on the GPU. memory with minimal overhead Another technique concerns through PyOpenGL a Python OpenGL binding library Vertex shaders. shaders as discussed below process data vertices in parallel and return points in homogeneous. coordinates During rasterization a bitmap image is created from the vector. primitives The fragment shader processes pixels in parallel and assigns a. 2 2 OPENGL PROGRAMMABLE SHADERS, color and depth to every drawn pixel The image is finally rendered on. Prior to OpenGL 2 0 Segal and Akeley 2004 released in 2004 screen. vertex and fragment processing were implemented in the fixed. function pipeline Data and image processing algorithms were. described in terms of predefined stages implemented on non resulted in limited customization and high complexity as a result. programmable dedicated hardware on the GPU This architecture a programmable pipeline was proposed in the core specification. of OpenGL 2 0 This made it possible to implement entirely cus. 5 http www opengl org documentation implementations tomized stages of the pipeline in a language close to C called the. Frontiers in Neuroinformatics www frontiersin org December 2013 Volume 7 Article 36 2. Rossant and Harris Hardware accelerated visualization in Python. OpenGL Shading Language GLSL Kessenich et al 2004 These shader executes on all rendered pixels pixels of the primitives. stages encompass most notably vertex processing implemented rather than pixels of the screen It accepts as inputs varying. in the vertex shader and fragment processing implemented in the variables that have been interpolated between the closest vertices. fragment shader Other types of shaders exist like the geometry around the current pixel The fragment shader returns the pixel s. shader but they are currently less widely supported on standard color. hardware The fixed function pipeline has been deprecated since Together the vertex shader and the fragment shader offer. OpenGL 3 0 great flexibility and very high performance in the way data are. The main purpose of programmable shaders is to offer high transformed and rendered on screen Being implemented in a. flexibility in transformation lighting or post processing effects syntax very close to C they allow for an unlimited variety of. in 3D real time scenes However being fully programmable processing algorithms Their main limitation is the fact that. shaders can also be used to implement arbitrary data transfor they execute independently Therefore implementing interac. mations on the GPU in 2D or 3D scenes In particular shaders tions between vertices or pixels is difficult without resorting to. can be immensely useful for high performance interactive 2D 3D more powerful frameworks for general purpose computing on. data visualization GPUs such as OpenCL Stone et al 2010 or CUDA Nvidia. The principles of shaders are illustrated in Figure 2 sketch 2008 These libraries support OpenGL interoperability meaning. ing a toy example where three connected line segments forming that data buffers residing in GPU memory can be shared between. a triangle are rendered from three vertices Figure 2A A data OpenGL and OpenCL CUDA. item with an arbitrary data type is provided for every vertex In. this example there are two values for the 2D position and three 2 3 INTERACTIVE VISUALIZATION OF NEUROPHYSIOLOGICAL DATA. values for the point s color The data buffer containing the items In this section we apply the techniques described above to visual. for all points is generally stored on the GPU in a vertex buffer ization of scientific data and notably neurophysiological signals. object VBO PyOpenGL can transfer a NumPy array with the. appropriate data type to a VBO with minimal overhead 2 3 1 Interactive visualization of 2D data. OpenGL lets us choose the mapping between a data item Although designed primarily for 3D rendering the OpenGL pro. and variables in the shader program These variables are called grammable pipeline can be easily adapted for 2D data processing. attributes Here the a position attribute contains the first using an orthographic projection for example Standard plots. two values in the data item and a color contains the last three can be naturally described in terms of OpenGL primitives scat. values The inputs of a vertex shader program consist mainly of ter points are 2D points curves consist of multiple line segments. attributes global variables called uniforms and textures A partic histograms are made of consecutive filled triangles images are. ularity of a shader program is that there is one execution thread rendered with textures and so on However special care needs. per data item so that the actual input of a vertex shader con to be taken in order to render a large amount of data efficiently. cerns a single vertex This is an example of the Single Instruction Firstly data transfers between main memory and GPU mem. Multiple Data SIMD paradigm in parallel computing where ory are a well known performance bottleneck particularly when. one program is executed simultaneously over multiple cores and they occur at every frame Gregg and Hazelwood 2011 When. multiple bits of data Almasi and Gottlieb 1988 This pipeline it comes to visualization of static datasets the data points. leverages the massively parallel architecture of GPUs Besides can be loaded into GPU memory at initialization time only. GLSL supports conditional branching so that different transfor Interactivity panning and zooming critical in visualization of. mations can be applied to different parts of the data In Figure 2A big datasets Shneiderman 1996 can occur directly on the GPU. the vertex shader applies the same linear transformation rotation with no data transfers Visualization of dynamic e g real time. and scaling on all vertices datasets is also possible with good performance as the mem. The vertex shader returns an OpenGL variable called ory bandwidth of the GPU and the bus is typically sufficient in. gl Position that contains the final position of the current scientific applications see also the Results section. vertex in homogeneous space coordinates The vertex shader The vertex shader is the most adequate place for the imple. can return additional variables called varying variables here mentation of linear transformations such as panning and zoom. v color which are passed to the next programmable stage in ing Two uniform 2D variables a scaling factor and a translation. the pipeline the fragment shader factor are updated according to user actions involving the mouse. After the vertex shader the transformed vertices are passed and the keyboard This implementation of interactive visualiza. to the primitive assembly and the rasterizer where points lines tion of 2D datasets is extremely efficient as it not only leverages. and triangles are formed out of them One can choose the mode the massively parallel architecture of GPUs to compute data. describing how primitives are assembled In particular indexing transformations but it also overcomes the main performance. rendering not used in this toy example allows a given vertex to bottleneck of this architecture which concerns CPU GPU data. be reused multiple times in different primitives to optimize mem transfers. ory usage Here the GL LINE LOOP mode is chosen where The fragment shader is also useful in specific situations where. lines connecting two consecutive points are rendered the last the color of visual objects need to change in response to user. vertex being connected to the first input For instance the color of points in a scatter plot can be. Finally once rasterization is done the scene is described in changed dynamically when they are selected by the user In addi. terms of pixels instead of vector data Figure 2B The fragment tion the fragment shader is essential for antialiased rendering. Frontiers in Neuroinformatics www frontiersin org December 2013 Volume 7 Article 36 3. Rossant and Harris Hardware accelerated visualization in Python. FIGURE 2 Toy example illustrating shader processing Three varying variables here the point s color that are passed to the. connected line segments forming a triangle are rendered from three fragment shader The vertex shader implements linear or non linear. vertices The triangle is linearly transformed and color gradients are transformations here a rotation and a scaling and is written in GLSL. applied to the segments A Three 5D data points are stored in a Primitives here three line segments are constructed in the primitive. GPU vertex buffer object Each point is composed of two scalar assembly B During rasterization a bitmap image is created out of. coordinates x and y 2D space and three scalar RGB color these primitives The fragment shader assigns a color to every drawn. components The vertex shader processes these points in parallel on pixel in parallel Varying variables passed by the vertex shader to the. the graphics card For each point the vertex shader returns a point in fragment shader are interpolated between vertices which permits for. homogeneous coordinates here two coordinates x and y along with example color gradients. 2 3 2 Time dependent neurophysiological signals, The techniques described above allow for fast visualization. of time dependent neurophysiological signals An intracellular. recording such as one stored in a binary file can be loaded into. system memory very efficiently with NumPy s fromfile func. tion Then it is loaded into GPU memory and it stays there. as long as the application is running When the user interacts. with the data the vertex shader translates and scales the vertices. accordingly, A problem may occur when the data becomes too large to.
reside entirely in GPU memory which is currently limited to FIGURE 3 Screenshots of KwikSkope and KlustaViewa A Raw. a few gigabytes on high end models Other objects residing in 32 channel extracellular recordings visualized in KwikSkope B In. the OpenGL context or other applications running simultane KlustaViewa spike waveforms extracted from A are displayed in a layout. depending on the probe geometry Channels where waveforms are not. ously on the computer may need to allocate memory on the. detected amplitude below a threshold also called masked channels are. GPU as well For these reasons it may be necessary to down shown in gray Two clusters groups of spikes are shown here in red and. sample the data so that only the relevant part of interest is greed. loaded at any time Such downsampling can be done dynami. cally during interactive visualization i e the temporal resolu. tion can be adapted according to the current zoom level There This technique is implemented in a program which we devel. is a trade off between the amount of data to transfer during oped for the visualization of extracellular multielectrode record. downsampling and thereby the amount of data that resides ings KwikSkope 6 Figure 3A These recordings are sampled at. in GPU memory and the frequency of these relatively slow. transfers 6 https github com klusta team klustaviewa. Frontiers in Neuroinformatics www frontiersin org December 2013 Volume 7 Article 36 4. Rossant and Harris Hardware accelerated visualization in Python. high resolution can last for several hours and contain tens to. hundreds of channels on high density silicon probes Buzs ki. 2004 The maximum number of points to display at once is. fixed and multiscale downsampling is done automatically as a. function of the zoom level Downsampling is achieved by slic. ing the NumPy array containing the data as follows data gpu. data original start end step where start, and end delimit the chunk of data that is currently visible. on screen and step is the downsampling step More com. FIGURE 4 Dynamic representation of multielectrode extracellular. plex methods involving interpolation for example would result spike wavefoms with the probe geometry This example illustrates how. in aesthetically more appealing graphics but in much slower a complex arrangement of spike waveforms can be efficiently implemented. performance as well on the GPU with a vertex shader The user can smoothly change the local. A further difficulty is that the full recordings can be too large and global scaling of the waveforms The normalized waveforms as well as. the probe geometry are loaded into GPU memory at the beginning of the. to fit in host memory We implemented a memory mapping tech. session The vertex shader applies translation local and global scaling. nique in KwikSkope based on the HDF5 file format Folk et al transformation on the waveform vertices depending on user controlled. 1999 and the PyTables library Alted and Fern ndez Alonso scaling parameters. 2003 where data is loaded directly from the hard drive during. downsampling As disk reads are particularly slow they are much. faster on solid state drives SDD than hard disk drives HDD. We now describe how we implemented the visualization of. this operation is done in a background thread to avoid blocking. waveforms across spikes and channels The waveforms are stored. the user interface during interactivity Downsampling is imple. internally as 3D NumPy arrays Nspikes Nsamples, mented as described above in a polymorphic fashion as slicing. Nchannels As we also know the 2D layout of the probe. PyTables Array objects leads to highly efficient HDF5 hyperslab. with the coordinates of every channel we created a view where. selections 7, the waveforms are organized geometrically according to this lay. Another difficulty is the fact that support for double precision. out In Figure 3B the waveforms of two clusters in red and. floating point numbers is limited in OpenGL Therefore a naive. green are shown across the 32 channels of the probe This. implementation may lead to loss of precision at high trans. makes it easier for the experimenter to work out the posi. lation and zoom levels on the x axis A classic solution to. tion of the neuronal sources responsible for the recorded spikes. this well known problem consists in implementing a floating. intuitively We needed the experimenter to be able to change. origin Thome 2005 This solution is currently not imple. the scale of the layout dynamically as the most visually clear. mented in Galry nor KwikSkope but we intend to do so in the. scale depends on the particular dataset and on the selected. When the experimenter selects a cluster the corresponding. 2 3 3 Extracellular action potentials, waveforms are first normalized on the CPU linear mapping to. Another example is in the visualization of extracellular action. 1 1 before being loaded into GPU memory The geomet. potentials The process of recovering single neuron spiking activ. rical layout of the probe is also loaded as a uniform variable. ity from raw multielectrode extracellular recordings is known as. and a custom vertex shader computes the final position of the. spike sorting Lewicki 1998 Existing algorithmic solutions. waveforms The scaling of the probe and of the waveforms is. to this inverse problem are imperfect so that a manual post. determined by four scalar parameters uniform variables that. processing stage is often necessary Harris et al 2000 The prob. are controlled by specific user actions Figure 4 The GLSL code. lem is yet harder with new high density silicon probes containing. snippet below slightly simplified shows how a point belonging. tens to hundreds of channels Buzs ki 2004 We developed a. to a waveform is transformed in the vertex shader by taking into. graphical Python software named KlustaViewa 8 for this pur. account the probe layout the scaling and the amount of panning. pose The experimenter loads a dataset after it has been processed. and zooming set by the user, automatically and looks at groups of spikes clusters puta.
tively belonging to individual neurons The experimenter needs to Probe layout and waveform scaling. refine the output of the automatic clustering algorithm Human wave is a vertex belonging to a. decisions include merging or splitting clusters and classifying waveform. clusters according to their sorting quality These decisions are vec2 wave tr wave wave scale. based on the visual shapes of the waveforms of spikes across chan channel pos probe scale. nels the automatically extracted features of these waveforms and Interactive panning and zooming. the pairwise cross correlograms between clusters The software gl Position is the final vertex. includes a semi automatic assistant that guides the experimenter position. through the process gl Position zoom wave tr pan,7 http www hdfgroup org HDF5 doc UG 12. D ataspaces html Interactive visualization of these waveforms is fast and fluid. 8 https github com klusta team klustaviewa since waveforms are loaded into GPU memory at initialization. Frontiers in Neuroinformatics www frontiersin org December 2013 Volume 7 Article 36 5. Rossant and Harris Hardware accelerated visualization in Python. FIGURE 5 Performance comparison between matplotlib and Galry Ten requested at 1000 Hz up to a maximum zoom level for a maximum total. line plots white noise time dependent signals containing N points in total rendering duration of 10 s In all panels some values corresponding to large N. are rendered in matplotlib 1 3 0 with a Qt4Agg backend dashed and crosses could not be obtained because the system ran out of memory In particular. and Galry 0 2 0 solid and discs All benchmarks are executed three times on PC1 the values corresponding to N 108 could be obtained with Galry. with different seeds error bars sometimes imperceptible on the plots The but not matplotlib the system crashed due to RAM usage reaching 100. benchmarks are executed on two different PCs see details below PC1 PC1 2012 Dell XPS desktop computer with an Intel Core i7 3770 CPU. high end desktop PC in A C PC2 low end laptop in D F A D First 8 core at 3 40 GHz 8 GB RAM a Radeon HD 7870 2 GB graphics card. frame rendering time as a function of the total number of points in the plots Windows 8 64 bit and Python 2 7 5 64 bit PC2 2012 ASUS VivoBook laptop. B E Average memory consumption over time of the Python interpreter with an Intel Core i3 CPU 4 core at 1 4 GHz 4 GB RAM an Intel HD 3000. rendering the plot C F Median number of frames per second with integrated GPU video memory is shared with system memory Windows. continuous scaling in the x direction automatic zooming Frame updates are 8 1 64 bit and Python 2 7 5 64 bit. time only and the geometrical layout is computed on First we estimated the first frame rendering time of these. the GPU plots in Galry and matplotlib for different values of N An. entirely automatic script creates a plot displays it and closes it. 3 RESULTS as soon as the first frame has been rendered Whereas the first. We implemented the methods described in this paper in an exper frame rendering times are comparable for medium sized datasets. imental project called Galry 9 BSD licensed cross platform 10 000 100 000 points Galry is several times faster than mat. and for Python 2 7 only This library facilitates the development plotlib with plots containing more than one million points This. of OpenGL based data visualization applications in Python We is because matplotlib Agg implement all transformation steps on. focused on performance and designed the library s architecture the CPU in Python and C By contrast Galry directly trans. for our particular needs which were related to visualization of fers data from host memory to GPU memory and delegates. neurophysiological recordings The external API and the internal rasterization to the GPU through the OpenGL pipeline. implementation will be improved in the context of a larger scale Next we assessed the memory consumption of Galry and mat. project named Vispy see the Discussion plotlib on the same examples using the memory profiler. In this section we assess Galry s relative performance against package11 Memory usage is comparable except with datasets. matplotlib using a simple dynamic visualization task Figure 5 containing more than a few million points where Galry is a few. showing the results on a high end desktop computer and a low times more memory efficient than matplotlib We were not able. end laptop We created identical plots in Galry and matplotlib to render 100 million points with matplotlib without reaching the. which contain ten random time dependent signals for a total of N memory limits of our machine We did not particularly focus on. points The code for these benchmarks is freely available online 10 memory efficiency during the implementation of Galry an even. The results are saved in a human readable JSON file and the plots more efficient implementation would be possible by reducing. in Figure 5 can be generated automatically unnecessary NumPy array copies during data transformation and. 9 https github com rossant galry, 10 https github com rossant galry benchmarks 11 https pypi python org pypi memory profiler. Frontiers in Neuroinformatics www frontiersin org December 2013 Volume 7 Article 36 6. Rossant and Harris Hardware accelerated visualization in Python. Finally we evaluated the rendering performance of both the speed of GPU based solutions Matplotlib is not the only. libraries by automatically zooming in the same plots at a visualization software in Python other notable projects in. requested frame rate of 1000 frames per second FPS This is the clude Chaco 14 VisTrails Callahan et al 2006 15 PyQtGraph 16. aspect where the benefit of GPUs for interactive visualization is VisVis 17 Glumpy 18 Mayavi Ramachandran and Varoquaux. the most obvious as Galry is several orders of magnitude faster 2011 19 oriented toward 3D visualization However none of. than matplotlib particularly on plots containing more than one them is specifically designed to handle extremely large 2D plots. million points Here the performance of Galry is directly related as efficiently as possible. to the computational power of the GPU notably the number of With our techniques we were able to plot up to 100 million. cores points on a modern computer One may question the interest. In the benchmark results presented in Figure 5 matplotlib of rendering such a large number of points when the resolu. uses the Qt4Agg backend We also ran the same benchmarks with tion of typical LCD screens rarely exceeds a few million pixels. a non Agg backend Wx We obtained very similar results for the This extreme example was more a benchmark than a real world. FPS and memory but the first frame rendering time is equivalent example demonstrating the scalability of the method Yet raw. or better than Galry up to N 106 data not shown datasets with that many points are increasingly common and. Whereas we mostly focused on static datasets in this paper as a first approach it may be simpler to plot these data without. our methods as well as our implementation support efficient any preprocessing step Further analysis steps reducing the size. visualization of dynamic datasets This is useful for exam and complexity of the graphical objects subset rendering down. ple when visualizing real time data during online experiments sampling plotting of statistical quantities etc may be engaged. e g data acquisition systems With PyOpenGL transferring subsequently once the experimenter has gained insight into the. a large NumPy array from system RAM to GPU memory is nature of the data Liu et al 2013 More generally it could be. fast negligible Python overhead in this case Performance can interesting to implement generic dynamic downsampling meth. be measured in terms of memory bandwidth between system ods adapted to common plots. and GPU memory The order of magnitude of this bandwidth There are multiple ways our work can be extended First we. is roughly 1 GB s at least both by theoretical e g memory focused on performance most notably in terms of number of. bandwidth of a PCI Express 2 0 bus and experimental bench frames per second rather than graphical quality We did not. marks with PyOpenGL data not shown considerations Such implement any OpenGL based anti aliasing technique in Galry. bandwidth is generally sufficiently high to allow for real time as this is a challenging topic Pharr and Fernando 2005 Rougier. visualization of multi channel digital data sampled at tens of 2013 Anti aliased plots result in greater quality and clearer visu. kilohertz als and are particularly appreciated in publication ready figures. For example matplotlib uses anti aliasing and sub pixel reso. 4 DISCUSSION lution with the default Agg Anti Grain Geometry backend. In this paper we demonstrated that OpenGL a widely known High quality OpenGL based rendering would be an interesting. standard for hardware accelerated graphics can be used for fast addition to our methods Antialiased rendering leads to higher. interactive visualization of large datasets in scientific applications quality but lower performance end users could have the choice. We described how high performance can be achieved in Python to disable this feature if they need maximum performance. by transferring static data on the GPU at initialization time only Another extension could concern graphical backends. and using custom shaders for data transformation and render Currently Galry uses Qt4 as a graphical backend providing an. ing These techniques minimize the overhead due to Python the OpenGL context and it would be relatively easy to support other. OpenGL API calls and CPU GPU data transfers Finally we pre similar backends like GLUT or wxWidgets A web based backend. sented applications to visualization of neurophysiological data which would run in a browser would be highly interesting but. notably extracellular multielectrode recordings challenging More and more browsers support WebGL an open. Whereas graphics cards are routinely used for 3D scientific specification that lets OpenGL applications written in Javascript. visualization Lefohn et al 2003 R ler et al 2006 Petrovic run in the browser with hardware acceleration Marrin 2011. et al 2007 they are much less common in 2D visualization A web based backend would enable distributed work where. applications Bailey 2009 Previous uses of shaders in such the Python application would not necessarily run on the same. applications mainly center around mapping McCormick et al machine as the client In particular it would enable visualization. 2004 Liu et al 2013 images or videos Farrugia et al 2006 applications to run on mobile devices such as smartphones and. OpenVG 12 managed by the Khronos Group is an open specifi tablets Besides it would increase compatibility as there are. cation for hardware accelerated 2D vector graphics There are a some systems where the default OpenGL configuration is not. few implementations of this API on top of OpenGL 13 entirely functional In particular some browsers like Chrome and. We compared the performance of our reference implemen. tation Galry with matplotlib the most common visualization. 14 http code enthought com chaco, library in Python Even if matplotlib has been optimized for 15 http www vistrails org index php Main. performance over many years it is unlikely that it can reach P age. 16 http www pyqtgraph org,17 https code google com p visvis. 12 http www khronos org openvg 18 https code google com p glumpy. 13 http en wikipedia org wiki OpenVG On OpenGL 2C OpenGL ES 19 http code enthought com projects mayavi. Frontiers in Neuroinformatics www frontiersin org December 2013 Volume 7 Article 36 7. Rossant and Harris Hardware accelerated visualization in Python. Firefox use the ANGLE library20 on Windows to redirect OpenGL Bailey M 2009 Using gpu shaders for visualization Comput Grap Appl IEEE. API calls to the Microsoft DirectX library which is generally 29 96 100 doi 10 1109 MCG 2009 102. Basser P J Mattiello J and LeBihan D 1994 MR diffusion tensor spectroscopy. more stable on Windows systems Also it could be possible to and imaging Biophys J 66 259 267 doi 10 1016 S0006 3495 94 80775 1. compile an entire interactive visualization application in a Buzs ki G 2004 Large scale recording of neuronal ensembles Nat Neurosci 7. pure HTML Javascript file facilitating sharing and diffusion of 446 451 doi 10 1038 nn1233. scientific data We should note that a web backend would not Callahan S P Freire J Santos E Scheidegger C E Silva C T and Vo H T. necessarily require WebGL as a VNC like protocol could let the 2006 VisTrails visualization meets data management Proceedings of the. 2006 ACM SIGMOD international conference on Management of data Chicago. server send continuously locally rendered bitmap frames to the IL ACM 745 747 doi 10 1145 1142473 1142574. client Denk W and Horstmann H 2004 Serial block face scanning electron. Another interesting application of a web backend could con microscopy to reconstruct three dimensional tissue nanostructure PLoS Biol. cern the integration of interactive plots in the IPython note 2 e329 doi 10 1371 journal pbio 0020329. Farrugia J P Horain P Guehenneux E and Alusse Y 2006 GPUCV A. book IPython plays a central role in the Python scientific. framework for image processing acceleration with graphics processors in. ecosystem Perez and Granger 2007 as it offers not only an IEEE International Conference on Multimedia and Expo Toronto ON IEEE. extended command line interface for interactive computing in 585 588 doi 10 1109 ICME 2006 262476. Python but also a web based notebook that brings together all Fletcher M and Liebscher R 2005 PyOpenGL the Python OpenGL binding. inputs and outputs of an interactive session in a single web Available online at http pyopengl sourceforge net. Folk M Cheng A and Yates K 1999 HDF5 a file format and I O library. document This tool brings reproducibility in interactive com. for high performance computing applications Proceedings of SC 99 Vol 99. puting an essential requirement in scientific research Perez et al Portland OR. 2013 The IPython notebook only supports static plots in version Gregg C and Hazelwood K 2011 Where is the data Why you cannot. 1 0 However the upcoming version 2 0 will support Javascript debate CPU vs GPU performance without the answer in IEEE International. based interactive widgets thereby making the implementa Symposium on Performance Analysis of Systems and Software ISPASS Austin. TX IEEE 134 144 doi 10 1109 ISPASS 2011 5762730, tion of interactive hardware accelerated plots possible in the Harris K D Henze D A Csicsvari J Hirase H and Buzs ki G 2000.
notebook Accuracy of tetrode spike separation as determined by simultaneous intracel. The aforementioned possible extensions of our work are part lular and extracellular measurements J Neurophysiol 84 401 414. of a larger collaborative effort we are involved in together with the Hong S and Kim H 2009 An analytical model for a GPU architec. creators of PyQtGraph VisVis and Glumpy This project consists ture with memory level and thread level parallelism awareness in ACM. SIGARCH Computer Architecture News Vol 37 New York NY ACM. in creating a new OpenGL based visualization library in Python 152 163. named Vispy 21 This future tool supporting Python 2 6 and Horstmann H K rber C S tzler K Aydin D and Kuner T 2012 Serial sec. 3 x will not only offer high performance interactive visualization tion scanning electron microscopy S3EM on silicon wafers for ultra structural. of scientific data thereby superseding our experimental project volume imaging of cells and tissues PLoS ONE 7 e35172 doi 10 1371 jour. nal pone 0035172, Galry but it will also offer APIs at multiple levels of abstrac. Huettel S A Song A W and McCarthy G 2004 Functional Magnetic Resonance. tion for an easy and Pythonic access to OpenGL This library will Imaging Vol 1 Sunderland MA Sinauer Associates. offer a powerful and flexible framework for creating applications Hunter J D 2007 Matplotlib a 2D graphics environment Comput Sci Eng 9. to visualize neuro anatomical data notably through hardware 90 95 doi 10 1109 MCSE 2007 55. accelerated volume rendering techniques neural networks as Insel T R Landis S C and Collins F S 2013 The NIH BRAIN initiative. Science 340 687 688 doi 10 1126 science 1239276, graphs high dimensional datasets with arbitrary projections and. Jon Peddie Research 2013 Market Watch Press Release Technical report. other types of visuals We expect Vispy to become an essential Available online at http jonpeddie com press releases details amd winner. tool for interactive visualization of increasingly large and complex in q2 intel up nvidia down. scientific data Kessenich J Baldwin D and Rost R 2004 The OpenGL shading language. Lang Ver 46 1 5, Koetter R Bednar J Davison A Diesmann M Gewaltig M Hines M et al. FUNDING 2008 Python in neuroscience Front Neuroinform. This work was supported by EPSRC EP K015141 and Wellcome Lefohn A E Kniss J M Hansen C D and Whitaker R T 2003 Interactive. Trust Investigator award to Kenneth D Harris deformation and visualization of level set surfaces using graphics hardware. in Proceedings of the 14th IEEE Visualization 2003 VIS 03 Austin TX IEEE. Computer Society 11 doi 10 1109 VISUAL 2003 1250357. ACKNOWLEDGMENTS Lewicki M S 1998 A review of methods for spike sorting the detection and. We thank Max Hunter for his help on the paper and the imple classification of neural action potentials Netw Comput Neural Syst 9 R53. mentation of KwikSkope and Almar Klein and Nicolas Rougier R78 doi 10 1088 0954 898X 9 4 001. Liu Z Jiang B and Heer J 2013 imMens real time visual querying of big data. for helpful discussions,Comput Graph Forum Proc EuroVis 32. Markram H 2012 The human brain project Sci Am 306 50 55 doi. REFERENCES 10 1038 scientificamerican0612 50, Almasi G S and Gottlieb A 1988 Highly Parallel Computing Redwood City Marrin C 2011 Webgl specification Khronos WebGL Working Group Available.
CA Benjamins Cummings Publishing online at http www khronos org registry webgl specs latest 1 0. Alted F and Fern ndez Alonso M 2003 PyTables processing and analyzing McCormick P S Inman J Ahrens J P Hansen C and Roth G 2004 Scout. extremely large amounts of data in Python in PyCon Wahington DC a hardware accelerated system for quantitatively driven visualization and anal. ysis IEEE Visualization Austin TX IEEE 171 178 doi 10 1109 VISUAL. 20 https code google com p angleproject, Nvidia C 2008 Programming guide Available online at http docs nvidia. 21 http vispy org,com cuda cuda c programming guide. Frontiers in Neuroinformatics www frontiersin org December 2013 Volume 7 Article 36 8. Rossant and Harris Hardware accelerated visualization in Python. Oliphant T E 2007 Python for scientific computing Comput Sci Eng 9 10 20 Stone J E Gohara D and Shi G 2010 OpenCL a parallel programming. doi 10 1109 MCSE 2007 58 standard for heterogeneous computing systems Comput Sci Eng 12 66 doi. Owens J D Houston M Luebke D Green S Stone J E and 10 1109 MCSE 2010 69. Phillips J C 2008 GPU computing Proc IEEE 96 879 899 doi Thome C 2005 Using a floating origin to improve fidelity and performance. 10 1109 JPROC 2008 917757 of large distributed virtual worlds International Conference on Cyberworlds. Perez F and Granger B E 2007 IPython a system for interactive scientific Washington DC IEEE 8. computing Comput Sci Eng 9 21 29 doi 10 1109 MCSE 2007 53 Van Der Walt S Colbert S C and Varoquaux G 2011 The NumPy array a. Perez F Granger B E and Obispo C P S L 2013 An Open structure for efficient numerical computation Comput Sci Eng 13 22 30 doi. Source Framework For Interactive Collaborative And Reproducible Scientific 10 1109 MCSE 2011 37. Computing And Education Available online at http ipython org static Van Essen D C Ugurbil K Auerbach E Barch D Behrens T. sloangrant sloan grant pdf Bucholz R et al 2012 The human connectome project a data acqui. Petrovic V Fallon J and Kuester F 2007 Visualizing whole brain DTI tractog sition perspective Neuroimage 62 2222 2231 doi 10 1016 j neuroimage. raphy with GPU based tuboids and LoD management IEEE Trans Vis Comput 2012 02 018. Graph 13 1488 1495 doi 10 1109 TVCG 2007 70532 Woo M Neider J Davis T and Shreiner D 1999 OpenGL Programming. Pharr M and Fernando R 2005 Gpu Gems 2 Programming Techniques for High Guide The Official Guide to Learning OpenGL Version 1 2 Reading MA. Performance Graphics and General Purpose Computation Upper Saddle River Addison Wesley Longman Publishing Co Inc. NJ Addison Wesley Professional, Ramachandran P and Varoquaux G 2011 Mayavi 3D visualization of scientific. data Comput Sci Eng 13 40 51 doi 10 1109 MCSE 2011 35 Conflict of Interest Statement The authors declare that the research was con. R ler F Tejada E Fangmeier T Ertl T and Knauff M 2006 GPU based ducted in the absence of any commercial or financial relationships that could be. multi volume rendering for the visualization of functional brain images SimVis construed as a potential conflict of interest. 2006 305 318, Rougier N P 2013 Higher quality 2D text rendering J Comput Graph Tech 2. 50 64 Received 01 October 2013 accepted 05 December 2013 published online 19. Segal M and Akeley K 2004 The OpenGL Graphics System A Specification December 2013. Version 2 0 Available online at https www opengl org registry doc Citation Rossant C and Harris KD 2013 Hardware accelerated interactive data. glspec20 20041022 pdf visualization for neuroscience in Python Front Neuroinform 7 36 doi 10 3389 fninf. Shen E H Overly C C and Jones A R 2012 The Allen Human Brain Atlas 2013 00036. comprehensive gene expression mapping of the human brain Trends Neurosci This article was submitted to the journal Frontiers in Neuroinformatics. 35 711 714 doi 10 1016 j tins 2012 09 005 Copyright 2013 Rossant and Harris This is an open access article distributed. Shendure J and Ji H 2008 Next generation DNA sequencing Nat Biotechnol under the terms of the Creative Commons Attribution License CC BY The use dis. 26 1135 1145 doi 10 1038 nbt1486 tribution or reproduction in other forums is permitted provided the original author s. Shneiderman B 1996 The eyes have it a task by data type taxonomy for or licensor are credited and that the original publication in this journal is cited in. information visualizations in Proceedings of the IEEE Symposium on Visual accordance with accepted academic practice No use distribution or reproduction is. Languages Boulder CO IEEE 336 343 permitted which does not comply with these terms. Frontiers in Neuroinformatics www frontiersin org December 2013 Volume 7 Article 36 9.

Related Books

The Sectoral and Skills Mismatch between the Senior High ...

The Sectoral and Skills Mismatch between the Senior High

needs and demands of the local jobs and industries, this study aims to identify the top 5 most in-demand (2017) and projected in-demand (2018-2022) jobs in the different congressional districts in the Province of Cebu; second, it establishes the profile of the Senior high school tracks, academic strands, and the TVL







Incorporating Corrigendum No. 1 Speci? cation for ...

Incorporating Corrigendum No 1 Speci cation for

This PAS builds on the existing code of practice for the collaborative production of architectural, engineering and construction information, de? ned within BS 1192:2007. A forthcoming document, PAS 1192-3, will offer guidance on the use and maintenance of the asset information model (AIM) to support the planned

FAQs about PAS 1192-5, A Specification for security ...

FAQs about PAS 1192 5 A Specification for security

technological security (see clause 4.3 of PAS 1192-5). 4) How does PAS 1192-5 fit with other government guidance and codes of practice on security? PAS 1192-5 deals specifically with the security-minded approach to building information modelling, digital built environments and smart asset management.

Pengertian Pembangunan Politik

Pengertian Pembangunan Politik

4) Uraikan konsep pembangunan politik dalam makna teleologis dan bagaimana penerapannya di Indonesia! 5) Terangkan konsep pembangunan politik dalam arti fungsional, berilah contoh! Petunjuk Jawaban Latihan 1) Pembangunan dan modernisasi politik merupakan perubahan politik, bukan sebaliknya. Sedangkan perubahan politik dapat diartikan



effective people) dan Zarkasyi dengan panca jiwa yang berpegang teguh pada motto Pondok Pesantren Modern Gontor, penulis menemukan beberapa persamaan dan perbedaan serta merelevansikan kedua pemikiran dengan pendidikan Islam, sebagaimana akan dijelaskan berikut : 1. Persamaan Pemikiran Stephen R. Covey dan KH. Imam Zarkasyi

Oracle Utilities Advanced Spatial and Operational Analytics

Oracle Utilities Advanced Spatial and Operational Analytics

Oracle Utilities Advanced Spatial and Operational Analytics Administration Guide for a recommended approach to designing and setting up Oracle Utilities Advanced Spatial Analytics. General Data Warehousing Concepts There is a great deal of theory and jargon that is unique to the data-warehousing world.

Eco-Physiological Barriers and Technological Advances for ...

Eco Physiological Barriers and Technological Advances for

8 Eco-Physiological Barriers and Technological Advances for Biodiesel Production from Microalgae Simrat Kaur 1, Mohan C. Kalita 2, Ravi B. Srivastava 3 and Charles Spillane 1 1Genetics and Biotechnology Laborato ry, Botany and Plant Science, C306 Aras de Brun, National University of Ireland Galway,

Handbook of Usability Testing - ????

Handbook of Usability Testing

Handbook of Usability Testing, Second Edition: How to Plan, Design, and Conduct Effective Tests Published by Wiley Publishing, Inc. 10475 Crosspoint Boulevard