{"title":"具有持久数据结构的高效、动态数据可视化","authors":"Joseph A. Cottam, A. Lumsdaine","doi":"10.1117/12.909581","DOIUrl":null,"url":null,"abstract":"Working with data that is changing while it is being worked on, so called \"dynamic data\", presents unique \nchallenges to a visualization and analysis framework. In particular, making rendering and analysis mutually exclusive \ncan quickly lead to either livelock in the analysis, unresponsive visuals or incorrect results. A framework's \ndata store is a common point of contention that often drives the mutual exclusion. Providing safe, synchronous \naccess to the data store eliminates the livelock scenarios and responsive visuals while maintaining result correctness. \nPersistent data structures are a technique for providing safe, synchronous access. They support safe, \nsynchronous access by directly supporting multiple versions of the data structure with limited data duplication. \nWith a persistent data structure, rendering acts on one version of the data structure while analysis updates \nanother, effectively double-buffering the central data store. Pre-rendering work based on global state (such as \nscaling all values relative to the global maximum) is also efficiently treated if independently modified versions \ncan be merged. The Stencil visualization system uses persistent data structures to achieve task-based parallelism \nbetween analysis, pre-rendering and rendering work with little synchronization overhead. With efficient \npersistent data structures, performance gains of several orders of magnitude are achieved.","PeriodicalId":89305,"journal":{"name":"Visualization and data analysis","volume":"12 1","pages":"82940X"},"PeriodicalIF":0.0000,"publicationDate":"2012-01-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":"{\"title\":\"Efficient, dynamic data visualization with persistent data structures\",\"authors\":\"Joseph A. Cottam, A. Lumsdaine\",\"doi\":\"10.1117/12.909581\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Working with data that is changing while it is being worked on, so called \\\"dynamic data\\\", presents unique \\nchallenges to a visualization and analysis framework. In particular, making rendering and analysis mutually exclusive \\ncan quickly lead to either livelock in the analysis, unresponsive visuals or incorrect results. A framework's \\ndata store is a common point of contention that often drives the mutual exclusion. Providing safe, synchronous \\naccess to the data store eliminates the livelock scenarios and responsive visuals while maintaining result correctness. \\nPersistent data structures are a technique for providing safe, synchronous access. They support safe, \\nsynchronous access by directly supporting multiple versions of the data structure with limited data duplication. \\nWith a persistent data structure, rendering acts on one version of the data structure while analysis updates \\nanother, effectively double-buffering the central data store. Pre-rendering work based on global state (such as \\nscaling all values relative to the global maximum) is also efficiently treated if independently modified versions \\ncan be merged. The Stencil visualization system uses persistent data structures to achieve task-based parallelism \\nbetween analysis, pre-rendering and rendering work with little synchronization overhead. With efficient \\npersistent data structures, performance gains of several orders of magnitude are achieved.\",\"PeriodicalId\":89305,\"journal\":{\"name\":\"Visualization and data analysis\",\"volume\":\"12 1\",\"pages\":\"82940X\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2012-01-22\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"2\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Visualization and data analysis\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1117/12.909581\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Visualization and data analysis","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1117/12.909581","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Efficient, dynamic data visualization with persistent data structures
Working with data that is changing while it is being worked on, so called "dynamic data", presents unique
challenges to a visualization and analysis framework. In particular, making rendering and analysis mutually exclusive
can quickly lead to either livelock in the analysis, unresponsive visuals or incorrect results. A framework's
data store is a common point of contention that often drives the mutual exclusion. Providing safe, synchronous
access to the data store eliminates the livelock scenarios and responsive visuals while maintaining result correctness.
Persistent data structures are a technique for providing safe, synchronous access. They support safe,
synchronous access by directly supporting multiple versions of the data structure with limited data duplication.
With a persistent data structure, rendering acts on one version of the data structure while analysis updates
another, effectively double-buffering the central data store. Pre-rendering work based on global state (such as
scaling all values relative to the global maximum) is also efficiently treated if independently modified versions
can be merged. The Stencil visualization system uses persistent data structures to achieve task-based parallelism
between analysis, pre-rendering and rendering work with little synchronization overhead. With efficient
persistent data structures, performance gains of several orders of magnitude are achieved.