Beruflich Dokumente
Kultur Dokumente
research (when I encounter such terminology) easier. Additionally, I will know which graph
model to use for my research project. And by covering equations and theorems, I will know
how to properly analyze graphs for vertices. For instance, he lists methods of calculating the
number of vertices, degrees of vertices, and number of edges. He also lists methods of
representing and analyzing graphs in code and text (Graphs in table-form) A useful skill if a
research paper or report doesnt actually graph the data. The graph-theory problems provided at
the end of the report arent critical to my research, but they are fun to ponder. Ultimately, the
report will prove critical to my research because it extensively covers graph-theory.
Agrawal D., Bernstein P., Bertino E., Davidson S., Dayal U., Franklin M., . . . . Widom J.
(2012). Challenges and Opportunities with Big Data: A white paper prepared for the
Computing Community Consortium committee of the Computing Research Association.
http://cra.org/ccc/resources/ccc-led-whitepapers/
The paper, as the name implies, examines the challenges and opportunities with Big Data.
The paper starts by introducing issues with Big Data: Scale, complexity, timeliness, and privacy.
For example, it writes that data analysis constrains the use of Big Data because of the datas
complexity. Nevertheless, it states, Big Data has created a multi-billion dollar industry because it
has the potential to spur the growth of many industries, ranging from business to science. It goes
on to provide more-detailed examples of areas Big Data can innovate. It could be used to
measure energy-use patterns, and with that information, a company or house could optimize
energy-savings. The paper also references numerous studies that predict how the big data
industry will expand. One of these studies states that 140,000 people will be needed in the US for
Big Data analytics. Soon thereafter, the paper examines the phases of Big Data analysis,
acquisition, extraction, integration, modeling, and interpretation, covering the potential and
issues of each phase. Ultimately, the paper concludes by stating that to reach Big Datas full
potential the industry needs to overcome many complex, technical issues.
The papers discussion of Big Datas potential motivates me to do further research. It also
makes me seriously consider this as a career. I enjoy what I am doing and knowing the industry
is booming furthers my interest in the field. The technical issues of Big Data that the paper
describes makes me reflect on what I have read and done with Big Data analysis. For example,
the paper says the scale, the size, of the data sets present challenges with data analysis This is a
major stimulus for my research of WebGL because the API accelerates the graphing process.
Therefore, the paper is a critical and thought-provoking resource for both my research project
and research for a potential career,
Barney. (2016). Introduction to Parallel Computing.
This report on parallel computing presents ideas in an easy-to-understand, lesson-like
manner. The report first covers serial computing, where instructions are executed sequentially
and on a single processor. Then, it introduces the basics of parallel computing, stating A
problem is broken down into discrete parts that can be solved concurrently Instructions from
each part execute simultaneously on different processors. The report also provides the three
requirements for parallel computing. It also provides examples of where parallel computing can
often be seen today. For examples, it states that most hardware, such as CPUs and
supercomputers, contain redundant components that enable them to run multiple computations
at once. It then gives numerous reasons why parallel computing should be used. For instance, it
saves time and money. After providing the reasons why to use parallel computing, the article
discusses complex terminology regarding parallel computing. Most of the terminology can only
be applied to hardware (CPUs, supercomputers), but some can be applied to software as well.
Soon thereafter, the report switches its focus from physical (hardware) parallel computing to
software parallel computing. Some of the concepts its covers include: Challenges of parallel
computing in software, parallel programming models, partitioning, debugging, and a
references section. It also mentions a variety parallel computing APIs, but not OpenCL.
The report is extremely useful. It explains difficult concepts in an easy-to-understand
way. Additionally, it provides terminology that is relevant to my project, such as speed-up,
which is major component of evaluating the effectiveness of WebCL. It also provides a number
of different ways to implement parallel computing and partition processes, both critical tasks
when implementing WebCL, and the references section gives me potential sources. On the other
hand, irrelevant information, such as CPU and supercomputer architecture, fills a portion of the
report.
Bryant R. E., Katz R. H., & Lazowska E. D. (2008). Big-Data Computing: Creating
revolutionary breakthroughs in commerce, science, and society: A white paper prepared
for the Computing Community Consortium committee of the Computing Research
Association. http://cra.org/ccc/resources/ccc-led-whitepapers/
The paper, published by the Computing Research Associations, begins by describing
areas where one can see big data emerging. For example, it references a proposed telescope in
Chile that would generate thirty million bytes of data every day. It also references how medical
scanners, such as MRIs, generate huge amounts of data. Then, it enumerates three primary
reasons why big data is flourishing: Advances in sensors, the creation of computer networks,
such as the internet, and increases in the amount of data storage. And the growing importance of
big data has driven innovation in the amount of data storage (Both an impetus and an effect),
data analysis techniques, and security and privacy Because there now are scary amounts of
data all in one place. It then states that large, internet-based companies, including Google and
amazon, are the ones leading the big-data industry. Similarly, it says that university researchers
and government agencies are not because of constraining budgets. The paper concludes by
recommending specific investments and actions in big data to further stimulate innovation.
For example, it recommends investing in high-performance computing sites and renewing the
role of the Defense Advanced Research Projects Agency (DARPA) in the industry.
The paper is interesting, insightful, and useful. Big data inherently plays a major role in
my research project, which focuses on big data analytics and visualizations. Its important to
know why I am researching what I am, so when the paper lists the reasons for the emergence of
big data, I find the information extremely useful. I am also more motivated to research big data
analytics because the paper discusses how big data spurs innovation and plays a major role in
countless unique industries, ranging from space exploration to the internet. The papers
recommendations, both intriguing and important to the industry, give me insight into the future
industry.
resources, but because I am a higher schooler, it only provides me with basic background
information.
Congote, Segura, Kabongo, & Ruiz. (2011). Interactive visualization of volumetric data with
WebGL in real-time.
Many scientific fields need to render large amounts of irregular, volumetric data into
three dimensional models. For instance, MRIs produce massive amounts of three dimensional
data. Traditionally, the rendering has been done on expensive, proprietary workstations, and few
solutions exist for rendering on desktop computers. The authors of the paper aim to create an
online, interactive, volumetric data renderer for standard computers through the
implementation of WebGL An API that uses WebCL to the graphics card to accelerate
graphics. Then, the authors discuss current methods for rendering online, three dimensional,
interactive graphics, such as VRML and X3D; the paper says that most of the current methods
lack portability, requiring browser plug-ins or operating systems, and do not utilize systems
graphics cards. The authors hypothesize that WebGL might be the solution because it is highly
portable and utilizes the graphics card. Subsequently, the authors examine (in surprisingly great
detail) how they implemented WebGL and the volumetric data rendering algorithms they created
and modified for it. Soon thereafter, the authors test their online render that used WebGL by
rendering a large, three-dimensional medical scan on different browsers, however they did not
compare it to traditional rendering methods. Ultimately, the authors found their WebGL renderer
to be relatively portable.
The research paper has limited use, though there certainly was no dearth of information.
My research project revolves around accelerating two dimensional graphics rendering, while the
research paper revolves around accelerating (and making more portable) three dimensional
graphics rendering. Thus, a majority of the three dimensional rendering algorithms discussed are
not pertinent. Further, the paper never compares the performance of its WebGL renderer to the
performance of other renderers (that do not use WebGL), so it never answers one of my critical
research questions: how much does WebGL accelerate computations? On the other hand, it the
paper references a plethora of papers on online data rendering; a number of these papers are
wonderful sources. For example, a paper written by Behr (cited by the authors) reviews and
compares the performances of a multitude of online graphics renderers. Additionally, the paper
does answer my research question: Is WebGL portable? A research question critical to my
analyzation of WebGL.
Cross-Platform OpenCL Code and Performance Portability for CPU and GPU Architectures
Investigated with a Climate and Weather Physics Model. (2012).
The goal of the research paper is too assess OpenCL portability, specifically performance
portability using a Climate and Weather Physics model. In other words, the paper attempts to
assess how the same code performs on different hardware configurations: How great of an affect
does the hardware configuration have on the performance of code? Whether one uses the CPU,
GPU, or both, and brands of components all determine hardware configurations and affect
portability. For example, one critical question regarding portability is whether ones code will
perform best using the GPU or CPU? The paper first introduces their claim, then addresses other
works which researched the question. For instance, one paper they reference found that CPUs
and GPUs have nearly equivalent speed-ups - OpenCL performance compared to serial
performance on the same piece of hardware. Soon thereafter, the authors introduce their
experiment that uses climate and weather physics model, known as SOLAR, to benchmark
hardware, such as intel CPUs and Nvidia GPUs. For each test, which varied in amount of input
data, they benchmarked each piece of hardware twice, once using OpenCL and once using serial
computations, and they calculated speed-up using this information. And ultimately, they found
that speed-up on CPUs was significantly higher than on GPUs, and that among CPUs, there
were relatively large discrepancies among test cases. Thus, they concluded OpenCL has poor
performance portability.
The paper includes numerous future sources I can research. For example, it mentions a
paper that discusses performance gains and portability with parallel computing. Additionally, the
paper addresses one of my projects major questions, What are the major flaws with
OpenCL/WebCl? Since the authors answer the question, I can now further research a major
flaw with OpenCL (Which mostly also affects WebCL). Similarly, I now know what might
affect the performance of graphing with OpenCL. But because the paper is relatively old, it uses
an old implementation of OpenCL. Therefore, some of its results might be outdated because
OpenCL has significantly changed since then. Overall, the paper is useful Mostly because it
has many potential sources.
D3 Data-Driven Documents. (2015). Retrieved October 23, 2016, from https://d3js.org/
Like SigmaJS, Date-Driven Documents (D3) is a JavaScript library for data visualization
on web pages. Not only can D3 graph networks, but it can also graph tables, plot functions, and
other common data visualizations. Further, many of D3s settings can be changed. For example,
one can change the size of nodes and add animations to objects. However, D3 does not
implement APIs to optimize graphing performance; it does not use WebGL or any other
graphics API. Additionally, the website for D3 also has a plethora of tutorials and examples of
use. For instance, a New York Times writer implemented it on the newspapers website to
display movie information.
D3 is a brilliant graphing resource. It is more versatile than SigmaJS, so it can model data
in many different ways. And like SigmaJS, one can easily modify it to suit ones needs. On the
other hand, D3 does not utilize WebGL, unlike SigmaJS. Therefore, SigmaJS most likely has a
higher performance. But this is perfect for my research project; I can compare the performance
of SigmaJS to D3 in order to evaluate WebGLs supposed acceleration.
Dinneen, Khosravani, & Probert. (2013). Using OpenCL for Implementing Simple Parallel
Graph Allgorithms.
The research paper first explores the emerging market for GPUs and their potentials for
massive calculations. It then introduces OpenCL, described as a generic overlay with the
purpose of providing a common interface for heterogeneous and parallel processing for both
CPU and GPU systems. In short, its saying that OpenCL enables the programmer to use both
the CPU and GPU and code parallel without having to code for specific devices and hardware.
Then, the report lists various properties of graphs that make graphing algorithms difficult to
parallelize, such as graph irregularities. In its superficial explanation of these properties, the
report also lists various academic papers that better explain them. For instance, it references a
paper on parallel GPU algorithms for graphs written by Harish and Narayanan, which also
resolves these issues. Then, it explains different methods, using OpenCL, to synchronize parallel
processes on the GPU, such as using atomic operations. In the final section of the research paper,
they benchmark three parallel graphing algorithms, two of which used OpenCL and the
syncing methods they suggested. The benchmark involved graphing, and each algorithm was
benchmarked fifty times (each benchmark test was different). They, found the OpenCL
algorithms usually performed better.
The research paper contains a plethora of information that will be useful to my project.
The introduction to OpenCL provides no new information, but the discussion of various methods
to synchronize tasks can be applied to my project. Also, the research reports reference to other
papers give me future, possible sources. The graphing benchmark of OpenCL directly answers
my question, Does OpenCL accelerate graphing? But, it is important to note, that all three
algorithms were parallel and heterogeneous, so one conclusion might be that the OpenCL was
not the determining factor as much as the methods used to synchronize the processes (which
varied between algorithms).
11 MYTHS About OpenCL. (2016). Electronic Design, 64(8), 29.
The articles somewhat click-bait title is not very representative of its advance topic
and scientific publisher. The myths it covers are more common questions than myths. The
article states that OpenCL only uses C and C++. The article then discusses how OpenCL can use
either the CPU, GPU, or both. Similarly, the article states that certain functions run best on the
GPU while other run best on the CPU, but does not list examples of these functions. The article
then analyzes how one can use OpenCL libraries without actually coding in OpenCL, which can
be seen in SigmaJS except using WebCL. The article also states that OpenCL, though written in
C, has different coding conventions in techniques. But yet again, it fails to provide examples of
these different conventions. The article concludes by writing that any GPU can take advantage
of OpenCL, one can have any hardware configuration, and OpenCL can be used in embedded
applications.
The article is not very useful. It does not provide examples, and it covers topics
superficially. In addition, the information in the article adds nothing new to my research. For
instance, the Khronos Group website answered the question Can any GPU take advantage of
OpenCL. Further, the new information, which I have not seen before, is completely irrelevant.
For instance, its explanation of OpenCL use in an embedded application does not pertain to my
research because it has no relation to embedded applications. Ultimately, my research does not
benefit from this article because of the shallow coverage of topics and the lack of examples and
new information.
Foster, I. (1995). Designing and Building Parallel Programs. Addison-Wesley.
The book, Designing and Building Parallel Programs, has numerous similarities to
Introduction to Parallel Computing (book). Like Introduction to Parallel Computing, the book
first covers trends in parallel computing and reasons for using it. Then, it goes over how one can
break traditional algorithms into tasks that can run concurrently (how one can parallelize
algorithms). For instance, it explains the domain decomposition technique for partitioning tasks.
Unlike Introduction to Parallel Computing the book rarely lists and analyzes parallelized forms
of common algorithms, such as graphing and sorting algorithms. One of the exceptions to this
rule, the books case study of Dijkstras algorithm, a graphing algorithm used to find the
shortest path, dissects and explains how one can parallelize the algorithm. But because of the
books age, no modern APIs are mentioned. It also discusses how one can evaluate the
effectiveness of parallelization.
Overall, the book Designing and Building Parallel Programs adds little new information
to my research project. It covers parallelization in a more broad-sense, and as a result, most of
the information it presents can be found in the book Introduction to Parallel Computing.
Additionally, Introduction to Parallel Computing covers the few common algorithms the book
(Designing and Building Parallel Programs) actually dissects and analyze. Moreover, the book
contains large amounts of obsolete information and does not cover implementation of modern
functional parallelization APIs because of its age. The one section that does add information to
my project, the chapter covering evaluation of parallelization, examines evaluating the
effectiveness of an algorithm via speedup calculation and finding issues that might lower
speedup I can use the methods mentioned to calculate speedup for various graphing libraries
and deduce what might limit speedud.
Gaster, Howes, Kaeli, Mistry, & Schaa. (2013). Hetergogeneous Computing with OpenCL.
Morgan Kaufmann.
The book, Heterogeneous Computing with OpenCL, goes in depth into the
implementation of OpenCL. It assumes that one understands most of the concepts and techniques
of parallelization, and thus, it focuses on implementing OpenCL after one has determined how
ones algorithm can be run in multiple concurrent parts. It covers topics including:
Understanding OpenCLs Concurrency and Execution Model, Dissecting a CPU/GPU
OpenCL Implementation, Data Management, multiple case studies, and OpenCL Profiling
and Debugging. For example, the section Dissecting a CPU/GPU OpenCL implementation,
explains how one can use both the cores in a Graphics Processing Unit (GPU) and CPU to run
computations concurrently. Throughout these chapters, the book also explains various functions
of OpenCL and their implementations and OpenCL terminology, such as kernel, which is one of
the concurrent processes. It also provides graphics and outlines to explain these complex topics.
Because the book provides a comprehensive tutorial of OpenCL implementation, it is a
magnificent resource. The sections that discuss OpenCL vernacular and functions will enable me
to understand other complex OpenCL books and papers. Moreover, the sections that discuss the
implementation of functions and debugging will enable me to understand how OpenCL code
projects work. Furthermore, the book contains up-to-date, reliable information, being published
only three years ago. Ultimately, the books only major issue is its assumption that one already
knows how to parallelize algorithms and processes; this presumption makes certain chapters and
sections difficult to understand. Another minor issue is that it only discusses OpenCL; my
project focuses on WebCL. Since WebCLs foundation is OpenCL, the differences are relatively
small.
Introduction to Parallel Computing (2nd ed.). (2003). Addison-Wesley.
The book, Introduction to Parallel Computing, as the name suggests, is in the form of a
text-book. At the start, it lists reasons why one should use parallel computing, such as cost
saving, and the issues associated with using it. Then, many of the chapters discuss how certain
algorithms can be made parallel. For instance, there is an entire chapter dedicated to
papers that discuss it. But the complex, technical explanations of pOCLadmittedly beneficial
to some made the paper difficult to understand. Moreover, the authors were inherently biased
when writing about pOCL because they created the implementation.
JavaScript. (2015). Retrieved October 16, 2016, from Mozilla Developer Network website:
https://developer.mozilla.org/
The webpage discusses many JavaScript concepts and ideas. The website has many pages
dedicated to complex, comprehensive tutorial of JavaScript. The tutorial also has multiple
projects associated with it, ranging from beginner to advanced difficulties. Furthermore, the
Reference section lists hundreds of objects, expressions, operators, statements, declarations,
and functions. Each item listed has a basic definition associated with it. There is also a section
known as Tools and Resources which lists websites for answering JavaScript related
questions; tools for testing JavaScript code, such as Node.Js, which I currently use; and tools for
compiling JavaScript, such as JsFiddle. Other useful tools include ones used for debugging and
code sharing. For example, JS Bin can be used to collaborate with other coders, such as my
mentor.
The webpage, with its diversity of resources, will greatly help me with my research
project. The variety of tutorials can help me with coding JavaScript for the WebCL API. The
tutorials projects arent directly helpful to my research, but I can complete them to improve my
JavaScript skills. Similarly, the lists of JavaScript items, objects, expressions, operators,
statements, declarations, and functions, I can reference when coding JavaScript or interpreting
others code. The Tools and Resources section also is helpful. For example, I already utilize
when coding for WebCL, and Ill start using the JsFiddle tool for debugging. Ultimately, the
JavaScript webpage is extremely useful because the WebCL API and related libraries are all
written in JavaScript.
Johns Hopkins University Applied Physics Laboratory. (2016). Retrieved October 2, 2016, from
http://www.jhuapl.edu/
Divided into five subsections, About, Mission Areas, Careers, News &
Publications, and Education, the Johns Hopkins Applied Physics Laboratory (APL) website
contains a variety of diverse information. The About section lists background information
about the laboratory, such as that its a non-profit and that its aims to provide innovation in the
national security sector. The Mission Areas section gives overviews of most APL programs
and facilities. For instance, one page discusses APLs sea control program and its mission goals,
which primarily involve submarine warfare and unconventional littoral warfare (littoral near
coast, in shallow waters). The News & Publications section, as the name implies, contains
articles and publications regarding APL innovations. The articles are concise, while the
publications are extremely detailed and lengthy. The Education section has multiple pages
dedicated to ASPIRE and other STEMS programs, and one page includes a thorough list outside
of resources I can use if I need help learning a concept.
The APL website, with its diversity of information, is extremely useful. The mission
goals, found in the About and Mission Areas sections, inform me of the intentions of my
internship provider and research. Furthermore, I can look at the Mission Areas to find other
projects I possibly want to intern in. The articles and publications on the website possess little
relevant information to my research, but I can use them to find other fields of interests and
potential human sources. Similarly, I can use the outside resources listed under Education to
find sources and help with a difficult concept. In short, the APL website contains: Potential
sources (including human sources), descriptions of possible fields of interest, intentions of my
internship provider, and resources if I need assistance.
[The Khronos Group]. (2016). Retrieved October 12, 2016, from https://www.khronos.org/
The Khronos Group, a non-profit organization that creates royalty-free Application
Program Interfaces (APIs), authored both OpenCL and WebCL among other APIs. The website
allows one to sign up for a multitude of international, OpenCl and WebCL, workshops. One
extremely useful page on the website provides a multi-page list of tutorials and examples of
WebCL and OpenCL development. Another page on the website lists various libraries (Make use
of the API easier) that implement the OpenCL and WebCL APIs. Similarly, the website hosts a
forum where one can talk with other WebCL and OpenCL developers. One extensive document
provided by the website, the WebCL specifications document, covers the APIs syntax, coding
conventions, and background processes. There is also a mailing list one can join, a page
dedicated to documenting bugs and updates in the APIs, and a form to report bugs in the APIs.\
Since a major aspect of my project involves OpenCL and WebCL, it is crucial that I am
well informed on the APIs. Thus, the Khronos Groups website is crucial because it documents
every minute aspect of the APIs. For instance, if I wanted to know the method for retrieving a
kernels name (getArgInfo()), I simply need to look at the documentation provided on the
website. If I am confused or have a question regarding the APIs, I can go on the forum or look
on the Resources page for help. And if a major update to the APIs occurs (which might alter
efficiency and previous studies results), I will now know because I am subscribed to the mailing
list for updates. Sadly, the informative workshops provided by the Khronos Group I cant
use. Like the workshops hosted by the Computing Research Association, the workshops hosted
by the Khronos Group are for industry professionals alone; I am not allowed to attend them.
Kohek, ., & Strnad, D. (2015). Interactive synthesis of self-organizing tree models on the GPU.
Computing, 97(2), 145-169. doi:10.1007/s00607-014-0424-7
The lengthy research paper focuses on accelerating the rendering process for realistic
tree models and forests. The author believes parallelization (the simultaneous running of
computations) of tree synthesis computations will achieve this; he also postulates that the
OpenCL API, which takes advantage of both multiple-cores and the GPU, will provide the best
framework for the parallelization. After going into significant depth on tree creation algorithms
(Extreme depth), the author discusses the procedure to test his hypothesis: How he implements
OpenCL, the system he uses to benchmark his tests, and how he analyzes the data. He provides
images, from trees to graphs, to help the reader better understand the procedure. The results from
his experiment affirmed his hypothesis; OpenCL provided significant acceleration of tree
computations compared to baseline CPU implementations.
Though the paper does not directly relate to graph theory, the underlining principle of it,
acceleration of mathematical computations, does. And I can apply the concepts he used to
implement OpenCL on his project to implementing WebCL, a similar API to OpenCL, on my
project. For instance, he mentions a method he uses to make the tree computations parallel.
Additionally, the research paper, published in 2015, contains up-to-date, relevant information.
Most importantly, the article partially answers one of the critical questions of my project: Does
OpenCL accelerate computing processes? His answer: Yes, for tree synthesis, suggests that it
might accelerate most mathematical computations but is never directly stated. On a less relevant
note, it amazes me that a person managed to write a sixty page research paper on creating virtual
trees.
Lemon, J., Kockara, S., Halic, T., & Mete, M. (2015). Density-based parallel skin lesion border
detection with webCL.
Dermatologists typically use hand-drawn images to assess skin lesions, which are defined
by the borders. The authors of the research paper aim to optimize a pre-existing automatic border
detection system using parallelization via OpenCL. The article firsts covers a pre-existing
computerized, automatic border detection system for lesions called DBSCAN, which uses serial
computing, one process at a time. The authors then analyze how they implemented WebCL and
parallelized the processes. For instance, they mention dividing the lesion image into multiple
parts so the device can analyze different parts of the lesion simultaneously; the device allocates
parts of its CPU or GPU, using WebCL, for analyzing each section of the image at the same
time. They also address algorithms they created to partition the image for processing, but they
never actually cover the code they use. And finally, they conclude that the WebCL
implementation of DBSCAN significantly exceeds the performance of serial implementation
of DBSCAN.
The article is somewhat useful. The topic of skin lesions is irrelevant, but the
implementation of WebCL on DBSCAN is not. The algorithms they used to partition parts of
the image analyzation is extremely useful because it provides a layout I can use to partition
parts of the graph rendering process. Additionally, the articles conclusion that WebCL
accelerates the DBSCAN system partially answers one of my principal research questions, does
WebCL accelerate most computational processes. However, implementing WebCL to analyze an
image does not strongly relate to implementing WebCL to graph, which is the focus of my
project, so, many of the concepts the authors used to implement WebCL on DBSCAN cant be
applied to my project.
Mertens, S. (2003). Node by node. (Networks). American Scientist, 91(2), 187+.
The article first describes a network, a set of nodes (dots) connected by links (lines). It
then discusses uses for network graphs, such as representing power lines, social interactions, or
chemical reactions. The next few paragraphs go over the history of graph (network) theory. The
impetus was Leonhard Eulers solution to the puzzle of the Konigsberg bridges of the 17th
century. And for the next two centuries, these graphs (networks) were extremely ordered, unlike
the irregular networks found in the real world. In the 1960s, scientists started to create
randomized, more real-world graphs. The author notes the major flaw with these randomized
graphs: They do not represent real-world networks because the nodes are scaled, meaning most
nodes have a similar number of links. It then provided real-world examples where this concept of
scaled nodes does not hold true, such as the internet Google has significantly more links than a
small, organizations website. Thus, the author goes on to argue that the best networks are both
unordered and scale-free and discusses the theory behind them.
The article is extremely useful. The discussion of network (graph) theory, though not
thorough, provides plenty of background information for my research. For instance, it mentions
the Konigsberg bridges puzzle as well as the transitions from ordered graphs to randomized,
Rossant, & Harris. (2013). Hardware-accelerated interactive data visualization for neuroscience
in Python.
The research paper begins by noting the increasing amount of data generated from
innovative neuro-science experiments. Then, it lists some of these experiments, such as the
Human Connectome Project and states that to analyze these large amounts of data effectively,
data visualization is necessary. It also lists common data visualization tools, including matplotlib
and Bokeh, but it says they do not scale well to very large datasets. Because most of these
visualization tools only use the CPU, they do not have the processing power to graph these
large data sets. It then proposes that to most efficiently graph large data sets, a data visualizer
should utilize the computers graphics processing unit (GPU), which is better designed for such
tasks. Additionally, it proposes that OpenGL, an API for hardware accelerated graphics, would
enable a visualizer to take advantage of the GPU. OpenGL would enable data visualizers to
efficiently graph large data-sets. The paper then introduces its experiment, which uses Galry, an
OpenGL data visualization library, and python to graph neurophysiological data. They found
that Galry, using OpenGL, graphed the large neurophysiological data set significantly faster
than matplotlib. In the discussion of the experiment, the paper analyzes the results and mentions
an extension of the experiment, which would use WebGL instead of OpenGL.
This article contains a trove of useful information. It cites over 45 research papers that I
can use as potential sources. For instance, it references a paper discussing the specifications of
WebGL. In addition, it discusses an effective method to accelerate data visualization, OpenGL.
Similarly, it answers an important question regarding this method: How much faster is it
compared to traditional methods? And to answer this critical research question, it uses a
credible, though-out experiment. Moreover, it examines the implementation of WebGL for
accelerating data visualization Another interesting API I can and will research. Ultimately, the
research paper includes a plethora of useful, new information.
Savkli, C. (2016). [Personal interview].
Dr. Savkli current holds the position: Chief Scientist of the Big Data Analytics Group at
the Applied Physics Laboratory. He earned his Bachelor of Science in Physics from Bogazici
University, his Master of Science in Physics from the University of Pittsburgh, his Master of
Science in Computer Science from Johns Hopkins University, and his Doctorate in Theoretical
Physics from the University of Pittsburgh. Additionally, he has held the position of Senior
Engineer at Lockheed Martin, Senior Analyst, and Senior Analyst at Metron.
SigmaJS. (2016). Retrieved October 22, 2016, from http://sigmajs.org/
SigmaJS is a JavaScript graphing library. By default, it renders graphs with WebGL,
which is significantly faster than traditional graphing methods. It makes graphing relatively easy
by including most of the graphing code in modules. In other words, SigmaJS deals with the
details while the programmer only needs to deal with the basic aspects of the graph. Another
useful feature of SigmaJS is that one can easily change graph settings. For example, one can
disable node labels with a single line of code. It also makes it easy to add a number of features to
the graph, such as the ability to move nodes with the mouse. The SigmaJS not only has the
SigmaJS library, but has tutorials and resources.