# futhark-multicore

## SYNOPSIS

futhark multicore [options…] <program.fut>

## DESCRIPTION

`futhark multicore` translates a Futhark program to multithreaded C code, and either compiles that C code with a C compiler to an executable binary program, or produces a `.h` and `.c` file that can be linked with other code. The standard Futhark optimisation pipeline is used.

The resulting program will read the arguments to the entry point (`main` by default) from standard input and print its return value on standard output. The arguments are read and printed in Futhark syntax.

## OPTIONS

Accepts the same options as futhark-c.

## ENVIRONMENT VARIABLES

`CC`

> The C compiler used to compile the program. Defaults to `cc` if unset.

`CFLAGS`

> Space-separated list of options passed to the C compiler. Defaults to `-O3 -std=c99 -pthread` if unset.

## EXECUTABLE OPTIONS

Generated executables accept the same options as those generated by futhark-c. The following additional options are accepted.

`--num-threads=INT`

  Use this many physical threads.

## BUGS

Currently works only on Unix-like systems because of a dependency on pthreads. Adding support for Windows would likely not be difficult.

## SEE ALSO

futhark-c, futhark-test