numba2

0 views
Skip to first unread message

Mark Florisson

unread,
Jul 29, 2013, 7:19:37 PM7/29/13
to numb...@continuum.io, numba...@continuum.io
Hey,

In my quest to create a more expressive, more easily understood and
performant numba, I've created a proposal which can be considered as
somewhat of a redesign of the numba "language". It will focus far less
on the CPython side of things, and instead mostly live in its own
world. Objects will still be allowed, but it should be possible to
write many useful numeric or other codes without it. A more
sustainable approach towards NumPy support will be taken, where a
subset of the NumPy API will be provided (maybe under a different
namespace), making it clear what is and isn't supported efficiently.
It will support data-parallel operators like map/reduce etc.

The goal is ultimately to allow (near) zero-cost abstraction and write
and implement nearly every component in a runtime (including complex
numbers, range, etc). It will further bring optional static typing,
Rust-like traits, and actual parallelism that runs unconstrained from
the GIL without sacrificing any language semantics. It's actually not
as ambitious as it sounds, with a few core abstractions numba can be
much more powerful and easier to implement at the same time. You can
read about it here:

http://markflorisson88.github.io/numba-nextgen/

By default objects will not be used, and it will be easily
understandable which things can run on a GPU. It combines the best
things of several languages, most notably Rust, Terra, RPython and
Julia. It's also influenced by parakeet, mypy and copperhead.

A short overview: optional static typing, generic functions, rust-like
traits, compile-time overloading, control over object representation,
control over unrolling, specialization and inlining, control over
memory allocation,
control over type promotion, coercion and conversion, and over
mutability. Different threads have different garbage collectors
allowing them to run in parallel without any locking. Immutable data
can be safely shared, mutable data may be borrowed. Communication
happens explicitly over typed channels, or higher-level abstractions
like parallel maps. Finally, different exception models may be
supported (costful as well as zero-cost).

There's also ideas to extract native functions from C extension
modules, allowing faster calls into native (recompiled) CPython code.

Feedback and suggestions are more than welcome!

Mark

Uwe Fechner

unread,
Aug 18, 2013, 1:12:54 PM8/18/13
to numba...@continuum.io, numb...@continuum.io
You write:
By default objects will not be used, ...

Does that mean that it is not suggested to write @jit classes?
See: http://numba.pydata.org/numba-doc/0.10/pythonstuff.html

For me functions are not always sufficient and I need to use jit
compiled classes (or globals, but that is ugly).

Best regards:

Uwe Fechner

mark florisson

unread,
Aug 19, 2013, 7:24:43 AM8/19/13
to numba...@continuum.io, Numba Development
Hey Uwe,

Classes will most definitely be supported, but it means type instantiation is not tied to Python's memory allocator or GIL. 


--
You received this message because you are subscribed to the Google Groups "Numba Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to numba-users...@continuum.io.
To post to this group, send email to numba...@continuum.io.
To view this discussion on the web visit https://groups.google.com/a/continuum.io/d/msgid/numba-users/59968d42-28fb-48fb-85c8-ac99567e6cb8%40continuum.io.
For more options, visit https://groups.google.com/a/continuum.io/groups/opt_out.

ville....@adroll.com

unread,
Aug 28, 2013, 5:19:20 PM8/28/13
to numba...@continuum.io, numb...@continuum.io

The link below


doesn't seem to work. Has it moved?

Thanks,

Ville

mark florisson

unread,
Sep 4, 2013, 10:39:55 AM9/4/13
to numba...@continuum.io, Numba Development
Hey Ville,

Yes indeed, sorry about that. Here is the new link:


The repo is here if you want to build it offline with sphinx:


Cheers,

Mark


--
You received this message because you are subscribed to the Google Groups "Numba Discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to numba-users...@continuum.io.
To post to this group, send email to numba...@continuum.io.
Reply all
Reply to author
Forward
0 new messages