Coder Social home page Coder Social logo

verificarlo / fuzzy Goto Github PK

View Code? Open in Web Editor NEW
15.0 5.0 14.0 15.17 MB

A fuzzy ecosystem for evaluating the stability of your computational tools.

License: Apache License 2.0

Shell 0.62% Jupyter Notebook 97.43% Python 0.31% Java 0.05% C 1.48% Makefile 0.10%
stability brainweb

fuzzy's Issues

get verificarlo dockerhub access

@pablooliveira could you please give either @yohanchatelain or I access to the verificarlo Dockerhub org so we can setup Github actions on this project to publish images as verificarlo/fuzzy:tag? If you don't want to do this, you could alternatively add the two following secrets to this project using your credentials:

DOCKER_HUB_USERNAME
DOCKER_HUB_ACCESS_TOKEN

Thanks!

brainhack global status update

Team Members

@rhannema, @mayankvadariya, @ali4006, @mathdugre, @glatard, @gkiar

Instrumentation

  • *Python (core)
  • *BLAS/LAPACK
  • *Python (numpy)
  • *Python (pytorch)
  • libmath
  • Java
  • Octave

Testing

  • Identify functions of interest which demonstrate instabilities
  • Write tests for each language
    • Python (core)
    • Python (numpy)
    • Cython
    • Java
    • C/C++/Fortran (using BLAS/LAPACK directly)
    • Octave

Illustration

  • Come up with compelling but simple illustration of fuzziness
    • Sci-kit learn? Sci-kit image? Nilearn?

Numpy ** operator broken for input -1 and 2

Bug in numpy instrumentation

Description of Issue/Feature Request

The ** operator for the value -1 and 2 is broken.

Here are the result by using the verificarlo/fuzzy:v0.4.1-lapack-python3.8.5-numpy docker image.

root@7c600c1a024d:/workdir# python3
Info [verificarlo]: loaded backend libinterflop_mca.so
Info [verificarlo]: load backend with precision-binary32 = 24, precision-binary64 = 53, mode = rr, daz = false and ftz = false
Python 3.8.5 (default, Apr 14 2021, 15:30:52) 
[Clang 7.0.1 (tags/RELEASE_701/final)] on linux
Type "help", "copyright", "credits" or "license" for more information.
import numpy as np
x = np.array([6.30408398, 1.88634343, 0.36657911, 0.04836907])
for i in range(-1, 4):
     print(x ** i)
 
[2.19886827e+12 2.93110181e+00 1.00000000e+00 1.00000000e+00]
[1. 1. 1. 1.]
[6.30408398 1.88634343 0.36657911 0.04836907]
[0.         0.         0.36657911 0.04836907]
[2.50533595e+02 6.71215986e+00 4.92609902e-02 1.13162677e-04]
Python 3.8.5 (default, Jan 27 2021, 15:41:15) 
[GCC 9.3.0]
import numpy as np
np.version.full_version
'1.18.5'
x = np.array([6.30408398, 1.88634343, 0.36657911, 0.04836907])
for i in range(-1, 4):
     print(x ** i)
 
[ 0.15862733  0.53012616  2.72792413 20.67436897]
[1. 1. 1. 1.]
[6.30408398 1.88634343 0.36657911 0.04836907]
[3.97414748e+01 3.55829154e+00 1.34380244e-01 2.33956693e-03]
[2.50533595e+02 6.71215986e+00 4.92609902e-02 1.13162677e-04]

System Configuration

Reproduction Instructions

consider increasing build wait times for various containers

Travis has a wrapper function, travis_wait N, that extends the allowable time without values being sent to stdout (default: 10 min), so jobs won't be cancelled.

Should this be used globally in our build scripts, extending time to 30 min, for instance?

Improve when-to-push on build

While each commit should verify that our environments build, it is inefficient to push all the time when an image may have had minimal changes (equivalent to running apt-get update, for instance).

If we used a keyword in commit messages, we can parse this in Travis through the TRAVIS_COMMIT_MESSAGE environment variable.

Proposal:

if commit message contains "push: *":
  separate on quotes if found within the wildcard, otherwise separate on spaces
  if $TRAVIS_JOB_NAME or $TRAVIS_BUILD_STAGE_NAME matches one of the strings
    push the image after build

This approach requires the 'push' command to be at the end of a commit message in order to ensure no false-positives are tripped. Also, "all" should be a reserved word for pushing all images.

Update readme

... to provide useful documentation and introduction

[OHBM/Hackaton2021] Build fuzzy-libmath container

Hi, here are the instructions for building your docker image with the fuzzy-libmath:

$> git clone https://github.com/verificarlo/fuzzy.git
$> cd fuzzy
$> ./docker/resources/build_fuzzy_libmath_dockerfile.sh <DOCKER_IMAGE> <NEW_NAME>
$> docker run -it <NEW_NAME>

where DOCKER_IMAGE is the name of your docker image to wrap and NEW_NAME the name of the new fuzzy version created.

You can find here an example of fuzzy-libmath on the python image.

improve organization of fuzzy images and their dependencies

For instance, I want a blas/lapack + libmath + python fuzzy container... and I'm sure the list goes on beyond that.

Proposal:

  • The base remains as is.
  • level1 is basically remapped to be a grid of instruction sets, and every combination in this matrix is computed and given an "index" or "bundle" ID
  • apps can be built on a single or a subset of all bundle IDs in parallel.

Thoughts, @glatard?

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.