Hi,

However silly the question : how are memory usage etc. calculated for f# ?

julien

By on 6/2/2009 11:01 PM ()

julien > However silly the question : how are memory usage etc. calculated for f# ?

A question that can be answered by reading the FAQ.

By on 6/4/2009 7:58 AM ()

As far as I understand they use standard tools distributed with most linux flavours to measure process size and execution time. The scripts they use are all available if you want to look into it further.

Cheers,
Rob

By on 6/2/2009 11:40 PM ()

I believe the source of the problem is F#’s implementation of arbitrary precision numbers, their performance isn’t that great. From what I understand, the F# team has decided it not the best use of its resources to fix the problem as there are other arbitrary precision libraries available for the .NET platform and you can interoperate with native libraries with native libraries too.

So I guess the logical way to fix this would be to use the same native library that GCC uses.

Rob

By on 6/2/2009 11:31 AM ()

> So I guess the logical way to fix this would be to use the same native library that GCC uses.

That's what the faster C# program does.

By on 6/2/2009 6:15 PM ()

I should also point out that for most of the other test F# does have a similar perf profile to C#, although in most case F# is slightly slower. I suspect this more to do with the people having invested more effort in tuning the C# examples.

Rob

By on 6/2/2009 11:33 AM ()

> I suspect this more to do with the people having invested more effort in tuning the C# examples.

Seemed like the folk contributing F# programs became discouraged :(

By on 6/2/2009 6:20 PM ()

Hey Isaac,

If the F# source files can run with the lastest version of F# you should probably upgrade, from what I understand there are quite a few perf improvements in the latest version. See [link:research.microsoft.com]

Cheers,
Rob

By on 6/2/2009 11:46 PM ()

Robert > " with the lastest version of F#"

/usr/local/bin/mono /usr/local/src/FSharp-1.9.6.16/bin/fsc.exe -r FSharp.PowerPack.dll --mlcompatibility --target:exe -O -o nbody.fsharp_run.exe nbody.fs
Microsoft F# Compiler, (c) Microsoft Corporation, All Rights Reserved
F# Version 1.9.6.16, compiling for .NET Framework Version v2.0.50727

error FS0193: internal error: the module/namespace 'System.Net' from compilation unit 'System' did not contain the namespace, module or type 'WebRequest'
make: [nbody.fsharp_run] Error 1 (ignored)

Somewhat puzzled - this program has nothing to do with System.Net or WebRequest, and was just fine with FSharp-1.9.6.2

By on 6/4/2009 9:14 AM ()

Hmm, strange, looks like an exception in the compiler as its trying to using web request, but don't know why it would. What version of Mono are you using? Probably worth dropping a note to fsbugs at microsoft.com, although they'll probably see it here anyway.

Rob

By on 6/4/2009 9:57 AM ()

Looks like your programs could be fixed by rewriting them to use something like -

[<EntryPoint>]

let main(args) =

By on 6/4/2009 11:36 AM ()

Stepped out of this thread for a few days - thanks for all the replies. It's probably worth investing a little time getting these programs running smoothly as these benchmarks are getting a bit of attention. I'm embarassed to admit I'm a computation biologist and a couple of these problems are computational biology so I should get off my backside and write the solutions.

Darren

By on 6/8/2009 9:10 PM ()

Seems to have something to do with FSharp.PowerPack.dll

The fannkuch program does compile and run without a reference to FSharp.PowerPack.dll

/usr/local/bin/mono /usr/local/src/FSharp-1.9.6.16/bin/fsc.exe --mlcompatibility --target:exe -O -o fannkuch.fsharp_run.exe fannkuch.fs
Microsoft F# Compiler, (c) Microsoft Corporation, All Rights Reserved
F# Version 1.9.6.16, compiling for .NET Framework Version v2.0.50727

\home\dunham\Documents\benchmarksgame_onecore\fannkuch\tmp\fannkuch.fs(91,8): warning FS0044: This construct is deprecated. This method was renamed. It is now called RunSynchronously

\home\dunham\Documents\benchmarksgame_onecore\fannkuch\tmp\fannkuch.fs(91,8): warning FS0044: This construct is deprecated. This method was renamed. It is now called RunSynchronously

Unfortunately the other programs do not

/usr/local/bin/mono /usr/local/src/FSharp-1.9.6.16/bin/fsc.exe --mlcompatibility --target:exe -O -o nbody.fsharp_run.exe nbody.fs
Microsoft F# Compiler, (c) Microsoft Corporation, All Rights Reserved
F# Version 1.9.6.16, compiling for .NET Framework Version v2.0.50727

\home\dunham\Documents\benchmarksgame_onecore\nbody\tmp\nbody.fs(8,1): warning FS0191: This declaration opens the module 'Microsoft.FSharp.Collections.Array', which is marked as 'RequireQualifiedAccess'. In a future version of F#, it will be an error to open this module. Adjust your code to use qualified references to the elements of the module instead, e.g. 'List.map' instead of 'map'. This change will ensure that your code is robust as new constructs are added to libraries

\home\dunham\Documents\benchmarksgame_onecore\nbody\tmp\nbody.fs(115,13): error FS0039: The value or constructor 'int_of_string' is not defined. A construct with this name was found in FSharp.PowerPack.dll, which contains some modules and types that were implicitly referenced in some previous versions of F#. You may need to add an explicit reference to this DLL in order to compile this code.

By on 6/4/2009 10:15 AM ()
IntelliFactory Offices Copyright (c) 2011-2012 IntelliFactory. All rights reserved.
Home | Products | Consulting | Trainings | Blogs | Jobs | Contact Us | Terms of Use | Privacy Policy | Cookie Policy
Built with WebSharper