Archive for September, 2009

Commercial Users of Functional Programming Videos

Just found a lot of videos from the “Commercial Users of Functional Programming” Edinburgh 2009

Lectures on Haskel, Scala, Erlang, F# etc.

Running Haskell Array Computations on a GPU

We support iPhone

Today I worked with a help of WPtouch plugin to enable a better experience of iPhone users of my blog.

It uses <meta name=”viewport” content=”initial-scale=1.0; maximum-scale=1.0; user-scalable=no;” /> and some CSS to format and display pages in appropriate way.
Following is preview in Safari with User Agent set to iPhone 3.0.

iPhone preview

iPhone preview

Client-server architecture

Recently I decided to design my product using the client-server architecture. It was initially designed as standalone application for windows but will continue to grow as bigger application and I would like to have the uniform architecture. My main points for this decision are following:

  • Main algorithm of the program is computationally intensive, i can imagine a dedicated machine that runs the server part for calculations (continuously for big problems) and one and multiple machines for viewing produced reports.
  • Data storage and data integration. It is possibility to store all data in local database (local for server component) or store it in ACD database. With separate server component this can be more easily administered.
  • It is better to separate the GUI from backed implementation from beginning. This can also permit better testing of separate components.
  • Separate server and client component can permit different licensing schemes like releasing the GUI as open source or the components can be run on different operating systems (server on Linux and clients on Windows)

I am still in process of making decision on exact implementation details: communication protocol etc. It can be some custom or some existing protocol or in future to use web services integration. At the moment do not want too spend to much time on this. My goal is to release a functional version with minimum number of features (just the right number in order to get the call center forecasting done). I consider that initial feedback is important and releasing early is the way to understand better customer requirements.

OpenCL Visual Profiler with Updated Drivers and SDK Code Samples

New Tool or Utility has just been posted to NVIDIA site.

This information is titled: OpenCL Visual Profiler with Updated Drivers
and SDK Code Samples

This information is for: General

The information description is: Leveraging the extensive performance
instrumentation in NVIDIA’s OpenCL
drivers and hardware performance signals designed into NVIDIA GPUs, the
OpenCL Visual Profiler provides developers with insight into performance
bottlenecks and opportunities for optimization. Key features include:
* Profiling of actual hardware signals, kernel efficiency,
and instruction issue rate
* Timing of memory copies between system memory and device memory
* Customizable graphs to help developers focus in on problem areas
* Basic auto-analysis to reveal warp serialization problems
* Easy import/export to CSV for custom analysis

This release also includes unified driver packages and an updated SDK
with support for both OpenCL and DirectCompute (be sure to follow the
instructions in the release notes to activate DirectCompute support).

Support for multi-GPU performance scaling has been added to most of the
OpenCL code samples, and several new code samples have been added as
well, including:
* oclMedianFilter
* oclFDTD3d
* oclRadixSort
* oclMersenneTwister
* oclSemirandomGenerator
* ImageProcessingCS
* nBodyCS
* OceanCS
* SimpleParticlesCS

Don”t miss the helpful OpenCL Best Practices Guide, designed to help
developers using OpenCL on the CUDA architecture implement high
performance parallel algorithms and understand best practices for GPU
Computing. Chapters on the following topics and more are included in
the guide:
* Heterogeneous Computing with OpenCL
* Performance Metrics
* Memory Optimizations
* NDRange Optimizations
* Instruction Optimizations
* Control Flow
* Performance Optimization Strategies

The drivers and SDK code samples in this release are compatible with
with the publicly available CUDA Toolkit 2.3 which is available at
www.nvidia.com/cuda.

Tags: , , ,