Interactive 3D Representation as a Method of Investigating Information Graph Features

Similar documents
Chapter 3. Set Theory. 3.1 What is a Set?

Learning and Generalization in Single Layer Perceptrons

CS2 Algorithms and Data Structures Note 10. Depth-First Search and Topological Sorting

Full Website Audit. Conducted by Mathew McCorry. Digimush.co.uk

Lecture 3: Linear Classification

Generalized Coordinates for Cellular Automata Grids

Midterm Exam Fundamentals of Computer Graphics (COMP 557) Thurs. Feb. 19, 2015 Professor Michael Langer

An introduction to plotting data

How to print a Hypercube

Textures and UV Mapping in Blender

Making Large-Scale Systems Observable Another Inescapable Step Towards Exascale

Topic 7 Machine learning

Web Designer vs Web Developer What s the Difference?

RETRACTED ARTICLE. Web-Based Data Mining in System Design and Implementation. Open Access. Jianhu Gong 1* and Jianzhi Gong 2

/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Priority Queues / Heaps Date: 9/27/17

2.3 Algorithms Using Map-Reduce

The Fly & Anti-Fly Missile

Introduction to Homogeneous coordinates

Within Kodi you can add additional programs called addons. Each of these addons provides access to lots of different types of video content.

This is the vector graphics "drawing" technology with its technical and creative beauty. SVG Inkscape vectors

Rhombic Hexacontahedron in Google SketchUp

Grades 7 & 8, Math Circles 31 October/1/2 November, Graph Theory

CSC 2515 Introduction to Machine Learning Assignment 2

Statistics of Software Package Usage in Supercomputer Complexes

14.1 Encoding for different models of computation

AN EFFICIENT IMPLEMENTATION OF NESTED LOOP CONTROL INSTRUCTIONS FOR FINE GRAIN PARALLELISM 1

Learning internal representations

DIRECTV Message Board

Planar Graphs and Surfaces. Graphs 2 1/58

Heuristic Evaluation of Covalence

Polar Coordinates. 2, π and ( )

Excel Basics Rice Digital Media Commons Guide Written for Microsoft Excel 2010 Windows Edition by Eric Miller

Lab 9. Julia Janicki. Introduction

Topology and Topological Spaces

Introduction to Programming in C Department of Computer Science and Engineering. Lecture No. #43. Multidimensional Arrays

Topic 1: What is HoTT and why?

Equations of planes in

UV Mapping to avoid texture flaws and enable proper shading

Available online at ScienceDirect. Procedia Engineering 111 (2015 )

Compiler Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore

Database Management System Prof. D. Janakiram Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No.

Block Lanczos-Montgomery method over large prime fields with GPU accelerated dense operations

MASSACHUSETTS INSTITUTE OF TECHNOLOGY ARTIFICIAL INTELLIGENCE LABORATORY. Working Paper 113 March 29, ON SOLVING THE FINDSPACE PROBLEM, or

This lesson introduces Blender, covering the tools and concepts necessary to set up a minimal scene in virtual 3D space.

Computer Graphics Hands-on

Programming Problem for the 1999 Comprehensive Exam

Scientific Graphing in Excel 2007

View Frustum Culling with Octree

Lecture 3 February 9, 2010

Here are some of the more basic curves that we ll need to know how to do as well as limits on the parameter if they are required.

Fractals: Self-Similarity and Fractal Dimension Math 198, Spring 2013

Spectroscopic Analysis: Peak Detector

International Journal of Emerging Technologies in Computational and Applied Sciences (IJETCAS)

Chapter One: Getting Started With IBM SPSS for Windows

4. Write sets of directions for how to check for direct variation. How to check for direct variation by analyzing the graph :

Order from Chaos. University of Nebraska-Lincoln Discrete Mathematics Seminar

Order from Chaos. Nebraska Wesleyan University Mathematics Circle

Why Use Graphs? Test Grade. Time Sleeping (Hrs) Time Sleeping (Hrs) Test Grade

High Performance Computing

(Refer Slide Time: 00:02:24 min)

Scientific Graphing in Excel 2013

The Application Research of Semantic Web Technology and Clickstream Data Mart in Tourism Electronic Commerce Website Bo Liu

And FlexCel is much more than just an API to read or write xls files. On a high level view, FlexCel contains:

(Refer Slide Time: 00:02:02)

Multiple variables data sets visualization in ROOT

Geometry Sixth Grade

Generalized Fuzzy Clustering Model with Fuzzy C-Means

Direct Variations DIRECT AND INVERSE VARIATIONS 19. Name

Matrices. Chapter Matrix A Mathematical Definition Matrix Dimensions and Notation

Plan for today. CS276B Text Retrieval and Mining Winter Vector spaces and XML. Text-centric XML retrieval. Vector spaces and XML

Heuristic Evaluation of [ Quest ]

School of Computer Science CPS109 Course Notes Set 7 Alexander Ferworn Updated Fall 15 CPS109 Course Notes 7

CS 292 Software Development

Record Linkage using Probabilistic Methods and Data Mining Techniques

Three-Dimensional Reconstruction from Projections Based On Incidence Matrices of Patterns

2 A little on Spreadsheets

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Programming in C++ Indian Institute of Technology, Kharagpur

How to Rescue a Deleted File Using the Free Undelete 360 Program

Lecture 3 - Template and Vectors

Parameterized Complexity of Independence and Domination on Geometric Graphs

4 Mathematics Curriculum. Module Overview... i Topic A: Lines and Angles... 4.A.1. Topic B: Angle Measurement... 4.B.1

Divisibility Rules and Their Explanations

Annotated Suffix Trees for Text Clustering

Drawing Bipartite Graphs as Anchored Maps

Library Website Migration and Chat Functionality/Aesthetics Study February 2013

BaSICS OF excel By: Steven 10.1

6 TOOLS FOR A COMPLETE MARKETING WORKFLOW

Grade 6 Math Circles November 6 & Relations, Functions, and Morphisms

Small-scale objects extraction in digital images

Lecture 5 CLASSIFICATION OF SURFACES

Getting Students Excited About Learning Mathematics

Module 4. Stereographic projection: concept and application. Lecture 4. Stereographic projection: concept and application

Basics of Computational Geometry

The name of our class will be Yo. Type that in where it says Class Name. Don t hit the OK button yet.

The Best Features of Vivaldi, a New Customizable Web Browser for Power Users Friday, April 15, 2016

CS 4349 Lecture October 18th, 2017

Relations I. Margaret M. Fleck. 7 November 2008

Advanced Combinatorial Optimization September 17, Lecture 3. Sketch some results regarding ear-decompositions and factor-critical graphs.

We will focus on data dependencies: when an operand is written at some point and read at a later point. Example:!

Week - 04 Lecture - 01 Merge Sort. (Refer Slide Time: 00:02)

Transcription:

Interactive 3D Representation as a Method of Investigating Information Graph Features Alexander Antonov and Nikita Volkov Lomonosov Moscow State University, Moscow, Russia asa@parallel.ru, volkovnikita94@gmail.com Abstract. An algorithm information graph is a structure of wide variety. It can tell a lot about algorithm features, such as computational complexity and resource of parallelism, as well as about sequential operations blocks within an algorithm. Graphs of different algorithms often share similar regular structures their presence is an indicator of potentially similar algorithm behavior. Convenient, interactive 3D representation of an information graph is a decent method of researching it; it can demonstrate algorithm characteristics listed above and its structural features. In this article we investigate an approach to creating such representations, implement it using our AlgoView system and give examples of using a resulting tool. Keywords: Information graph Parallelism AlgoWiki AlgoView level parallel form. Introduction An information graph of an algorithm is a DAG (directed acyclic graph), where vertices stand for operations within an algorithm and edges stand for data dependencies [1]. Its size and structure can thus depend not only on particular algorithm features, but also on input data size and on an exact execution sample (the latter happens only in case of a nondeterministic algorithm). Information graph can demonstrate algorithm s resource of parallelism, determine primary data flows within it and show parts that require most computation to be executed. Information graphs of different algorithms can possess similar regular structures, demonstrating possible similarities in algorithms execution processes. The graph itself can be represented in many forms, which allow to highlight some particular features of its structure. These representations include the level parallel form [1] and projections of a multidimensional graph on a hyperplane with less dimensions. The number of dimensions is an algorithm characteristics which can be defined as the maximum depth of cycle nests within an algorithm. If it s 3 or less, one can easily represent a graph in 3-dimensional space without hiding its regular structure. Otherwise more complex methods may be required to display such a graph with all regularities preserved. These include graph projections and macrographs (a generalization of information graphs, where vertices can stand not only for operations, but also for whole information graphs of algorithm s subtasks). 262

2 A. Antonov, N. Volkov 1 Graph Visualization Representing a graph in a visual form is overall a complex task with many approaches to its solution. The exact approach depends on the primary goal of a given graph visualization task. Most well-developed and widespread techniques aim for automatically built images of really large graphs of, say, social networks or worldwide web parts, with related vertices being grouped into clusters. An example of this approach can be found in [2]. We, however, deal with small graphs that have a feature their bigger brothers don t a strict, regular structure. Information graphs therefore have much more in common with data flow and control flow graphs used in compilation theory [3]. The limited size of studied graphs comes from their definition we can take input data size as small as we want, if the graph still retains its regular structure. 2 The AlgoWiki Project We came up with an idea of the AlgoWiki project a few years ago [4, 5]. It s main purpose is to describe algorithms accenting their resource of parallelism, possible implementations for massively parallel systems, researching scalability [7] and efficiency. However, new possible problems to solve appeared during it s development. These include investigating less-known algorithm characteristics, such as data locality [8], building up a classification system for tasks, methods and algorithms, searching for algorithms that could be used as benchmarks and creating supercomputer ratings based on these benchmarks. AlgoWiki is an open web-resource [6] powered by MediaWiki engine. This project is supported by Russian Science Foundation and officially led by a well-known scientist, professor J. Dongarra (University of Tennessee, USA). 3 An Interactive Representation Features and Problems A visual representation of an algorithm graph is definitely a powerful instrument for researching its structure. There are, however, so many different information graphs, that a viable and logical form of visual representation simply can t be the same for all of them. Modifications of a visual representation are very useful for displaying certain algorithm features. Moreover, our AlgoView system used in AlgoWiki to provide visual representations of information graphs [9] generates 3D representations automatically, based on XML algorithms descriptions (which, in their turn, are based on actual program code). This system defines every vertex of an information graph and its position within a generated representation. Edges are defined by pairs of vertices they connect. This information doesn t give a unique representation of vertices and edges, since we don t know, how exactly graph edges should be displayed. This causes certain technical difficulties. 263

Title Suppressed Due to Excessive Length 3 3.1 Level Parallel Form of an Information Graph A level parallel form is one of many ways to show an information graph. All graph vertices are placed on a certain level, which is defined by two simple rules. A vertex without data dependencies is placed on level one. For any other vertex all sources of data dependencies are assigned to a certain level first; the vertex is then given a level of maximum source level plus one. The main purpose of such a representation is to show algorithm s resource of parallelism. Another one (used in our interactive representations) is to follow operation executions within an algorithm. Our method of displaying an algorithm level parallel form is shown in Figure 1. The tool we created to show information graphs is available online and interactive, so users should have a certain portion of control over what they see on their screens. In the upper right corner of Figure 1 a minimized control panel used to manipulate the visualization and provide information can be seen. It consists of several menus which can be maximized separately and allow to easily acquire visualization projections, highlight level-parallel form levels, vertex types, display information like axis names etc., but don t possess scientific value themselves and thus won t be referred to later on. Fig. 1. Possible way to display a level parallel form; vertices from current level are shown in orange, previous levels are dark green, upcoming levels are light green. 3.2 Information Graph Projections As it was said before, our visual representation of an information graph is 3- dimensional. However, regular structures within a graph aren t necessarily 3- dimensional themselves. They can have both more and less dimensions. An example of a 1-dimensional structure is data broadcast. A 3-dimensional representation can be projected on axis or plane to better display such low-dimensional 264

4 A. Antonov, N. Volkov structures. A good projection brings more clearness into information graph structure. For example, in Figure 2 data dependencies are almost hidden, while in Figure 3 one can clearly see a basic data broadcast. Fig. 2. A projection of an information graph on oyz plane; broadcast is almost hidden. Fig. 3. A projection of an information graph on oxz plane; broadcast can be clearly seen. 3.3 Removing Edges Intersections Intersections of edges within an information graph visual representation can be divided into several categories: self-intersections, edges intersecting each other, edges passing through vertices that are neither edge beginning nor edge ends. Currently we use only one method to avoid too many edge intersections. If distance between the start and end vertices of an edge surpasses a certain threshold, then Bezier curves are used to layout edges in 3-dimensional space instead of straight lines. Curving extent can also be set to depend on distance between vertices. A good display of this idea is given in Figure 4. Sometimes this algorithm doesn t allow to remove all edge intersections, as shown in Figure 5. However, it at least excludes the possibility of edges completely impositioning each other. In some cases intersection practically dont affect one s ability to distinct different edges. An example of such a graph will be shown later in Figure 11. 3.4 Outer Parameters and Point of View Besides key questions described above, one needs to address lesser tasks when creating a visual representation of an information graph. The most obvious of 265

Title Suppressed Due to Excessive Length 5 Fig. 4. Broadcasting is displayed with the help of Bezier curves. Fig. 5. Edges still intersect, but don t imposition each other. 266

6 A. Antonov, N. Volkov them is choosing a correct point of view for a given representation. With point of view being a generalization of graph projections, different points of view can simplify or complicate one s understanding of an algorithm structure. We decided to allow users to choose points of view themselves, while certain points of view (such as projections) are saved, so current point of view can always be reset to one of those. Information graphs are also different for every given size of input data, which is controlled by so-called outer parameters. These affect not only the size of regular structures within an information graph, but also define whether some vertices and edges are present in a graph or not. A good example of that is Householder algorithm for QR-decomposition of a matrix [10]. There are N I additional blocks in it, and data is broadcasted from the first block to all of these during every step of an algorithm. If NI = 1, however, there s only one block and the broadcast nature of its data dependency from the first block is hidden. 3.5 Macrographs In information graph definition nothing is said about what operations displayed by vertices are, but it s usually assumed that they are atomic tasks that cannot be further subdivided into smaller parts. macrograph is a generalization of an information graph, in which operations displayed by vertices can be pretty much anything, including whole information graphs of an algorithm subtask. Two macrograph vertices have a data dependency between them, if there is a data dependency between any pair of information graph vertices they represent. A concept of macrograph is really useful for representing algorithms and methods that basically consist of several more simple algorithms. Here we give a simple display of a macrograph concept. In Figure 6, you can see the already familiar Givens method from Figure 1, except for now vertices as displayed as macros, not just simple operations. In Figure 7, there s a more thorough structure view of a cyan colored macro vertex from Figure 6, where green vertices stand for normal operations and red octahedrons stay for input and output data. 4 A Library of Typical Information Graph Structures 4.1 The AlgoView System Our AlgoView system, described in detail in [9], is a set of applications and scripts used for creating interactive 3-dimensional representations of information graphs. Here we give only a brief overview of it. The AlgoView system includes two main functional tools a 3D model generator written in C++ and a viewer, which is based on a set of web-pages with JavaScript and WebGL utilities attached to it. It s supported by server-executed node.js code, which brings more functionality to an interactive representation, for example, allowing user to re-generate 3D-models on server if needed. 267

Title Suppressed Due to Excessive Length 7 Fig. 6. Givens QR-decomposition method for N = 3. At each plane, all vertices but the broadcasting ones display a 2D-vector rotation operation. Fig. 7. A more detailed structure of a 2D vector rotation operation from Figure 6. 268

8 A. Antonov, N. Volkov Generator. An input for the generator is an XML file of known format. XML files are also built automatically, but XML file builder doesn t belong to the AlgoView system. A set of 3D models representing the information graph is generated. User is asked to provide values for all outer parameters listed in an XML file. Viewer. Users are supposed to interact with the viewer as follows: prepared 3D models are stored on server. Users open web-pages containing 3D represenations in their browsers and JavaScript code is executed on client side. This code is responsible for showing models in browser window and manipulating them. Server part. This includes node.js code executed on server, which allows to upload new models to same web-page and to generate 3D models with new parameters on server (where a copy of generator application is stored). One can read more about AlgoView in the link given above. However, server part isn t described there, since it wasn t even planned at that time. It s being developed at the moment. 4.2 A Library of Typical Information Graph Structures Based on AlgoView The AlgoView system provides quite a variety for possibilities to display information graphs. These representations are already used to further describe certain algorithms in AlgoWiki [11], but they can also be used for another purposes. Many different algorithms possess similar regular structures. Some of these regular structures are very well known in terms of how deeply their resource of parallelism and other characteristics are investigated. They are also encountered in various algorithms very often and can be called typical. We decided to use the AlgoView system to create a library of such typical regular structures. The most common ones are 2- and 3-dimensional groups of vertices, which form up a grid or a group of grids. The main difference between these structures lies in the way of how data dependencies are organized. It s convenient to divide dependency patterns into categories not only by addressing them the way its done in level parallel form, but also by paying attention how much coordinates in n-dimensional space are different in a pair of vertices connected by a graph edge. These categories are good for describing a complicated dependency pattern as a combination of more simple ones. Moreover, they correspond very well to a formal description of an information graph given in XML files, which are used by the AlgoView system. Some of these typical structures are: N-dimensional sequential structures, as shown in Figure 8; N-dimensional broadcasts, as shown in Figure 9; Independent sets of sequential structures or broadcasts (Figure 10); Same sets of sequential structures and broadcasts, but with dependencies between them (Figure 11); 269

Title Suppressed Due to Excessive Length 9 Schemes with oblique parallelism [10], as shown in Figures 12 and 13; Same as previous category, but with additional broadcasts. Fig. 8. A 2-dimensional sequential structure. Fig. 9. A 2-dimensional broadcast. This basic set is already enough to display many structures seen in widely used algorithms, such as [11] and [12]. More complex structures can be described as a combination of these simple ones. Examples are in Figures 14 and 15. In addition to its main purpose, this library can, from our point of view, help in solving other tasks. One of them is testing and further developing the AlgoView system. In case of complex information graphs structures the system build correct, but yet non-aesthetic 3D-models. Since information graph complexity doesn t have any limits (expect for the maximum number of edges for a graph of given size), we aren t aiming for an ideal 3D-model generation system. However, paying attention to structures common in real algorithms is, in our opinion, definitely worth it. Our plan is also make this regular structures library public with same intentions as the whole AlgoWiki project. Just like with algorithms, we plan to further classify these structures and create description pages for all of them. Every page will contain an interactive representation of a given structure and examples of algorithms utilizing it. 5 Conclusion In this paper, we have given a review of various algorithm features that can be represented within an information graph, as well as methods to do so. We have also provided data on our approach to visualizing information graphs considering 270

10 A. Antonov, N. Volkov Fig. 10. A set of 1-dimensional, independent, sequential structures. Fig. 11. Two sets of 1-dimensional broadcasts, dependent on each other. Fig. 12. A parallel scheme. Fig. 13. A scheme with oblique parallelism. 271

Title Suppressed Due to Excessive Length 11 Fig. 14. Two 2-dimensional vertex groups with parallelism, connected to each other. Fig. 15. A 3-dimensional vertex group, being a set of 2-dimensional schemes with oblique parallelism these features and provided an updated brief description of our AlgoView system. In addition, our two latest ideas were discussed in this paper. The first one is about creating a public library of typical structures found in information graphs with the help of interactive 3D representations. A list of such structures was described and examples of 3D representations were provided. The second idea is all about finding algorithms that could be good benchmarks for massively parallel systems, since we think a good sign of such an algorithm would be numerous typical structures within it. Further research and implementation of these two concepts is therefore our primary concern. 6 Acknowledgements The results described in sections 1 2, 4 were obtained in Lomonosov Moscow State University with the financial support of the Russian Science Foundation (Agreement 14 11 00190). The research is carried out using the equipment of the shared research facilities of HPC computing resources at Lomonosov Moscow State University supported by the project RFMEFI62117X0011. References 1. Voevodin, V., Voevodin, Vl.: Parallel Computing. BHV-Petersburg, St. Petersburg (2002) 2. Hu, Yi., Shi, L.: Visualizing large graphs. WIREs Computational Statistics. Vol. 7. Issue 2. Pp 115-136 (2015) DOI: 10.1002/wics.1343 3. Gold, R.: Control flow graphs and code coverage. Applied Mathematics and Computer Science. Vol. 20. No. 4. Pp. 739 749 (2010) DOI: 10.2478/v10006-010-0056-9 272

12 A. Antonov, N. Volkov 4. Voevodin, V., Antonov, A., Dongarra, J.: AlgoWiki: an Open Encyclopedia of Parallel Algorithmic Features. Supercomputing Frontiers and Innovations. Vol. 2. No. 1. Pp. 4 18 (2015) DOI: 10.14529/jsfi150101 5. Voevodin, Vl., Antonov, A., Dongarra, J.: Why is it hard to describe properties of algorithms? Procedia Computer Science. Vol. 101 (2016). Pp. 4 7. DOI: 10.1016/j.procs.2016.11.002 6. Open Encyclopedia of Parallel Algorithmic Features, http://algowikiproject.org/en. Last accessed 13 Apr 2018 7. Antonov, A., Teplov, A.: Generalized Approach to Scalability Analysis of Parallel Applications. Lecture Notes in Computer Science. Vol. 10049. Pp. 291 304 (2016) DOI: 10.1007/978-3-319-49956-7 23 8. Alexander Antonov, Vadim Voevodin, Vladimir Voevodin, Alexey Teplov. A Study of the Dynamic Characteristics of Software Implementation as an Essential Part for a Universal Description of Algorithm Properties. 24th Euromicro International Conference on Parallel, Distributed, and Network-Based Processing Proceedings, 17th 19th February 2016. Pp. 359 363. DOI: 10.1109/PDP.2016.24 9. Antonov, A.S., Volkov, N.I.: An AlgoView Web-visualization System for the AlgoWiki Project. Communications in Computer and Information Science. Springer International Publishing AG. Vol. 753. Pp. 3 13 (2017) DOI: 10.1007/978-3-319-67035-5 1 10. Householder (reflections) method for the QR decomposition of a square matrix, real point-wise version, http://algowikiproject.org/en/householder (reflections) method for the QR decomposition of a square matrix, real point-wise version. Last accessed 13 Apr 2018 11. Givens method http://algowiki-project.org/en/givens method. Last accessed 13 Apr 2018 12. Dense matrix multiplication (serial version for real matrices) http://algowikiproject.org/en/dense matrix multiplication (serial version for real matrices). Last accessed 13 Apr 2018 273