Code Monkey home page Code Monkey logo

numc's Introduction

numc

Provide answers to the following questions for each set of partners.

  • How many hours did you spend on the following tasks?
    • Task 1 (Matrix functions in C): 8hr
    • Task 2 (Writing the Python-C interface): 12hr
    • Task 3 (Speeding up matrix operations): 10hr
  • Was this project interesting? What was the most interesting aspect about it?
    • It was very interesting. I like that we learned about python interfacing into C.
    • Most interesting was to learn about threading and working on multiple data at the same time.
  • What did you learn?
    • I learned about Python Environment.
    • Learned that pragma is going to slow down if used in inner loops and is only affective in outer-most loop
    • Learned that in SIMD masking is used to get around if statements
    • How to do threading and getting more used to C
    • Learned about testing a C program by Python
    • Learned about timing a program.
  • Is there anything you would change?
    • I think getting rid of sub and neg was a very good choice. It would have been just a repetitive work.
    • Show the command to run the unittest from root folder
    • I think adding how much speed up to expect on how large a matrix would be a good idea.
    • Change the exponentiation link to the Wikipedia link or something more easy to read would be good choice.
    • Maybe for Task 2, similar to task 3 add all the useful function that we need
    • For testing add and example of catching an error type.
    • For PyNumber Struct add this link, it is great: https://py3c.readthedocs.io/en/latest/ext-types.html
    • For parallel threading say that the inner-most for-loop is going to be a slow-down.

If you worked with a partner:

  • In one short paragraph, describe your contribution(s) to the project.
    • I did everything on my own.
    • For Numc I first looked through the existing code to know how to use the python function and then tried to replicate something similar. First started on add and did the error case and created a numc.matrix and went on from there. Other functions were similar. I did some googling to figure out what some python functions were doing and how to use them. Had to do testing after I wrote all the functions becuase I didn't know it depended on get and set which I did last.
    • For matrix.c speed up I first started with SIMD on add and parallized it and the moved on to mul and abs and then at the end did pow exponentiation.
    • Did some testing, did some coding on matrix.c and numc.c
  • In one short paragraph, describe your partner's contribution(s) to the project.
    • My partner was a bum. He did nothing.
    • Just kidding I did the project solo.

numc's People

Contributors

abelo9996 avatar carolinexwl89 avatar chrononyan avatar

Watchers

Mohammad Amin avatar

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.