Coder Social home page Coder Social logo

lagraph-working-group's People

Contributors

drtimothyaldendavis avatar marci543 avatar scottkolo avatar sei-smcmillan avatar szarnyasg avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

jim22k marci543

lagraph-working-group's Issues

Test Issue

This is a test issue to see if the GitHub Action to automatically add issues to the project board

Return codes

Do we use GrB_Info or have LAGr_Info that contains (possibly) a GrB_Info and a much richer set of information.

Is there an LAGr_error() that does analogous tasks to GrB_error() or something completely different.

LAGraph NONBLOCKING mode

[18Mar2020] Should LAGraph return a GrB_Matrix that is deferred?

Related question: are the algorithms is composable for which the result of one is passed to another.

Is GraphBLAS execution mode orthogonal to the concerns of LAGraph?

Property checking levels

In the 2020-04-22 meeting, property checking levels were discussed. I want to expand on that idea a bit more.

First, let's separate formal properties from informal properties.

Formal properties

  • Are part of the struct
  • Have multiple enumerated values, including the default Unknown
    • Might be simple: Unknown, True, False
    • Might be more complicated: Unknown, RealValues, NonNegative, StrictlyPositive

Informal properties

  • Not part of the graph struct (although could be added in a future release)
  • Always have an implied value of Unknown

LAGraph algorithms can indicate required property values (both formal and informal) in their description. Descriptor bits control property checking. There is one descriptor bit for formal properties and a separate one for informal properties.

Formal property checking levels

  1. No checking performed. Property values ignored.
  2. Raise an error if the property is not satisfied. Unknown is assumed to be a satisfied property.
  3. Raise an error if the property is not satisfied or Unknown.
  4. If property is Unknown, calculate the property. Raise an error if the property is not satisfied.
  5. Recalculate the property. Raise an error if the property is not satisfied.
  6. Recalculate the property. Raise an error if the property is not satisfied or if the property changes and was not originally Unknown.

Informal property checking levels

  1. No checking performed.
  2. Calculate the property. Raise an error if the property is not satisfied.

While all levels are useful in different situations, I think the two most common modes will be Run Fast (formal=0, informal=0) and Check as Needed (formal=3, informal=1).

Visual notation for GraphBLAS operations

Some thoughts on visualizing GraphBLAS operations in presentations.

Masks

Masks -- it might be worth making a distinction between〈M〉and〈¬M〉:

  • regular mask: highlight elements which are to be computed with some background color, e.g. light grey
  • complement of a mask: cross out matrix elements (×) where the computation should not be performed.

The rationale behind this distinction is that is we would use the same for〈¬M〉, that would often mean highlighting most of the matrix.

Additionally:

  • replace mask: It should suggest that the elements outside the mask are deleted. This is often quite obvious visually so maybe just adding a note 'replace' could suffice.

Highlight elements

If using colors is possible, we can use circles with borders.

Lessons learnt

I've used Wingdings to capture circled numbers but it had a few problems:

  • Changing from the basic state to a highlighted state is time-consuming as it is a different character.
  • For the same reason, animated highlights also do not work.

Using regular numbers in a circle is a better approach.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.