Can the Beagleboard do this?

I have a C library I am creating for a nonlinear system of equations
solver. I am trying to benchmark my code as well as get it on a stand
alone board. When I do timing on my PC, I get varied results becase of
background tasks, etc.

I need a board that I can run some C code on with output to some
external source ( could be comm, usb, ect ) without running on an
operating system. Basically I want to be sure my code is the only
thing the board is doing.

Things I need for my code:

64bit floating point calculations
trig functions
malloc

Can I acomplish this with the beagleboard, or does anyone have any
suggestions?

I have a C library I am creating for a nonlinear system of equations
solver. I am trying to benchmark my code as well as get it on a stand
alone board. When I do timing on my PC, I get varied results becase of
background tasks, etc.

Kill these background tasks or increase the duration of your
benchmark so that these tasks become noise.

I need a board that I can run some C code on with output to some
external source ( could be comm, usb, ect ) without running on an
operating system. Basically I want to be sure my code is the only
thing the board is doing.

You'd need a dedicated OS. I don't know if such a thing exists.

Things I need for my code:

64bit floating point calculations
trig functions
malloc

Cortex-A8 is poor at double floating-point.

Can I acomplish this with the beagleboard, or does anyone have any
suggestions?

If your end target is a PC, doing benchmarking on something that
doesn't have the same processor makes no sense. So you're left
with my first advice above :slight_smile:

Laurent

Op 18 dec 2008, om 17:55 heeft jgvicke@gmail.com het volgende geschreven:

I have a C library I am creating for a nonlinear system of equations
solver. I am trying to benchmark my code as well as get it on a stand
alone board. When I do timing on my PC, I get varied results becase of
background tasks, etc.

I need a board that I can run some C code on with output to some
external source ( could be comm, usb, ect ) without running on an
operating system. Basically I want to be sure my code is the only
thing the board is doing.

You can approximate this by statically linking your binary and booting with 'init=/bin/mybinary'. That will make sure that your binary is the only userspace running.

regards,

Koen

OS less idea:
a) you could hack u-boot to do it too :wink:
b) you can run a standalone application from u-boot in supervisor mode
- look at the helloworld example.

However benchmarking would be possible with JTAG Trace tools if you have handy..
Regards,
Nishanth Menon

Op 18 dec 2008, om 17:55 heeft jgvicke@gmail.com het volgende geschreven:

I have a C library I am creating for a nonlinear system of equations
solver. I am trying to benchmark my code as well as get it on a stand
alone board. When I do timing on my PC, I get varied results becase of
background tasks, etc.

I need a board that I can run some C code on with output to some
external source ( could be comm, usb, ect ) without running on an
operating system. Basically I want to be sure my code is the only
thing the board is doing.

You can approximate this by statically linking your binary and booting with
'init=/bin/mybinary'. That will make sure that your binary is the only
userspace running.

OS less idea:
a) you could hack u-boot to do it too :wink:
b) you can run a standalone application from u-boot in supervisor mode
- look at the helloworld example.

However benchmarking would be possible with JTAG Trace tools if you have handy..

If this app is going to run in userspace you'd probably want to run benchmarks in userspace as well, but it would be a nice hack to run it in uboot :slight_smile:

Might be a good idea to use something tiny and customized like busybox....
Regards,
Nishanth Menon

Hi,

generally in Windows it is possible to lock a process to a CPU.
So if you own a dual processor (not hyperthreading!) machine you could consider to lock the calculation to a cpu and then set priority to time critical (don’t mess up the order!), so the calculation does not get interrupted by other tasks. For time measurement you can read CPU time register, so you will have high resolution on timing. If you have finished the calculation and have taken timestamp from cpu, - don’t forget to reset tasks priority back to normal…
I don’t remember the exact calls to MFC but they are available, you will just have to dig in the internet or MFC library description…

regards,
AdT

Laurent Desnogues schrieb:

generally in Windows it is possible to lock a process to a CPU.

...

I don't remember the exact calls to MFC but they are available, you will
just have to dig in the internet or MFC library description...

You could try http://mlin.net/SMPSeesaw.shtml (includes source).

Robert

The real question is what kind of performance do you require?

Sounds like you take a sequence of equation from a I/O then you want it processed with know latency less than some amount of time. Knowing those details would get you better suggestions. If it is that simple a processor with 64bit hardware floating point and no OS might be the right choise.

If you have processor idle time, and want to make use of it without impacting the calculation performance, you could look at a real-time OS such as eCos. http://ecos.sourceware.org/

If you are adventurous, and have time, you could use an PGA and get incredible speed with a cheap evaluation kit such as the cyclone III from Altera. $199 from digikey http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=544-2370-ND

Or you could look at a DSP solution with a wide range of choices there.

Unless size, weight, power, etc. is pushing you away from a PC I would stick with the dual core solution suggested above.

-Scott