000 04318nam a22005295i 4500
001 978-3-030-41886-1
003 DE-He213
005 20240423125225.0
007 cr nn 008mamaa
008 200417s2020 sz | s |||| 0|eng d
020 _a9783030418861
_9978-3-030-41886-1
024 7 _a10.1007/978-3-030-41886-1
_2doi
050 4 _aQA76.758
072 7 _aUMZ
_2bicssc
072 7 _aCOM051230
_2bisacsh
072 7 _aUMZ
_2thema
082 0 4 _a005.1
_223
100 1 _aCheramangalath, Unnikrishnan.
_eauthor.
_4aut
_4http://id.loc.gov/vocabulary/relators/aut
245 1 0 _aDistributed Graph Analytics
_h[electronic resource] :
_bProgramming, Languages, and Their Compilation /
_cby Unnikrishnan Cheramangalath, Rupesh Nasre, Y. N. Srikant.
250 _a1st ed. 2020.
264 1 _aCham :
_bSpringer International Publishing :
_bImprint: Springer,
_c2020.
300 _aXI, 207 p. 44 illus.
_bonline resource.
336 _atext
_btxt
_2rdacontent
337 _acomputer
_bc
_2rdamedia
338 _aonline resource
_bcr
_2rdacarrier
347 _atext file
_bPDF
_2rda
505 0 _aIntroduction to Graph Analytics -- Graph Algorithms and Applications -- Efficient Parallel Implementation of Graph Algorithms -- Graph Analytics Frameworks -- GPU Architecture and Programming Challenges -- Dynamic Graph Algorithms -- Falcon: A Domain Specific Language for Graph Analytics -- Experiments, Evaluation and Future Directions.
520 _aThis book brings together two important trends: graph algorithms and high-performance computing. Efficient and scalable execution of graph processing applications in data or network analysis requires innovations at multiple levels: algorithms, associated data structures, their implementation and tuning to a particular hardware. Further, programming languages and the associated compilers play a crucial role when it comes to automating efficient code generation for various architectures. This book discusses the essentials of all these aspects. The book is divided into three parts: programming, languages, and their compilation. The first part examines the manual parallelization of graph algorithms, revealing various parallelization patterns encountered, especially when dealing with graphs. The second part uses these patterns to provide language constructs that allow a graph algorithm to be specified. Programmers can work with these language constructs without worrying about their implementation, which is the focus of the third part. Implementation is handled by a compiler, which can specialize code generation for a backend device. The book also includes suggestive results on different platforms, which illustrate and justify the theory and practice covered. Together, the three parts provide the essential ingredients for creating a high-performance graph application. The book ends with a section on future directions, which offers several pointers to promising topics for future research. This book is intended for new researchers as well as graduate and advanced undergraduate students. Most of the chapters can be read independently by those familiar with the basics of parallel programming and graph algorithms. However, to make the material more accessible, the book includes a brief background on elementary graph algorithms, parallel computing and GPUs. Moreover it presents a case study using Falcon, a domain-specific language for graph algorithms,to illustrate the concepts.
650 0 _aSoftware engineering.
650 0 _aComputer science
_xMathematics.
650 0 _aDiscrete mathematics.
650 1 4 _aSoftware Engineering.
650 2 4 _aDiscrete Mathematics in Computer Science.
700 1 _aNasre, Rupesh.
_eauthor.
_4aut
_4http://id.loc.gov/vocabulary/relators/aut
700 1 _aSrikant, Y. N.
_eauthor.
_4aut
_4http://id.loc.gov/vocabulary/relators/aut
710 2 _aSpringerLink (Online service)
773 0 _tSpringer Nature eBook
776 0 8 _iPrinted edition:
_z9783030418854
776 0 8 _iPrinted edition:
_z9783030418878
776 0 8 _iPrinted edition:
_z9783030418885
856 4 0 _uhttps://doi.org/10.1007/978-3-030-41886-1
912 _aZDB-2-SCS
912 _aZDB-2-SXCS
942 _cSPRINGER
999 _c175590
_d175590