Monday, 16 November 2009

Logic programming: n-queens and knight's tour problems

The F#.NET Journal just published an article about logic programming:

"Logic programming is a paradigm often seen in problem solving and AI. This article introduces the subject of logic programming and explains why the F# language is ideally suited to these kinds of applications, using the familiar examples of solving the n-queens problem and finding a knights tour. Moreover, the differences between the .NET implementation and those bred specifically for this style of programming is described and techniques that can be used to close the performance gap are discussed..."

To read this article and more, subscribe to The F#.NET Journal today!

Friday, 6 November 2009

F# for Visualization 0.4.0.2 released

A new release of our F# for Visualization library is now available to beta release subscribers. This release is designed to work with the new October 2009 CTP release of F#.

Parallelizing the SciMark2 benchmark: part 1

The F#.NET Journal just published an article about parallel programming:

"The SciMark2 benchmark is one of the better benchmarks for programming languages and their implementations in the context of technical computing. This article is the first in a series revisiting the SciMark2 benchmark to examine the potential for parallelizing each of its components. Specifically, the Fast Fourier Transform (FFT) and Successive Over-Relaxation (SOR) tasks are covered in this article. The results are of general interest in the context of improving performance on multicores using parallel programming..."

To read this article and more, subscribe to The F#.NET Journal today!

Low-lock algorithms

The F#.NET Journal just published an article about concurrent programming:

"Locks are the defacto-standard approach to concurrent programming. With locks, shared mutable resources are protected using mutual exclusion to ensure consistency of the shared state from the point of view of different threads. However, locks are slow and, consequently, many situations can benefit from the avoidance of locks in favor of lower-level solutions. Much research has gone into non-blocking (obstruction-free, lock-free and wait-free) algorithms. This article introduces the concepts that underpin the implementation of non-blocking algorithms, including the .NET memory model, and explains how this can be leveraged to avoid locks with the simple example of lazy evaluation..."

To read this article and more, subscribe to The F#.NET Journal today!