Trad4

Software Screenshot:
Trad4
Software Details:
Version: 3.2 / 3.3 Beta 01
Upload Date: 11 May 15
Developer: Steve Evans
Distribution Type: Freeware
Downloads: 32

Rating: nan/5 (Total Votes: 0)

Trad4 is a fully concurrent, thread safe programming language that scales linearly on multiple cores. The project is initially intended for deployment in the financial industry to model real-time risk.

Trad4 comprises of a library and a pre-processor. You specify your objects using a simple syntax and run the pre-processor. Trad4 produces a handful of C files for each object, including a stub file - the calculate method. This gets called each time the object needs to fire, and you need to supply the logic for. Trad4 pulls all the information that object needs to calculate itself into the scope of this function.

These source files are then compiled and together with libtrad4.so are linked into an executable. This then starts against a database.

Change is then fed into the system, and trad4 manages that change up through your graph and keeps the tree up to date in real time.

Trad4 is a new way of arranging programs in memory and a new style of flow-of-control.

Why use trad4?

It's very easy to use. To build a trad4 application to model your problem you need just a good understanding of your problem and knowledge of a small subset of the C programming language.

It's very fast. As you decompose your problem into separate objects, this allows multiple threads to execute different parts of your problem at the same time, so a trad4 application scales linearly on multiple cores. Trad4 itself has very little overhead - there are very few instructions between an object needing to be run and it's calculate function being called.

It's very efficient. As you break your problem out into separate objects, you can arrange your graph in such a way that each individual calculation gets done only once within the application. Other objects that depend on the result of that calculation will read the result from that object.

It's very safe. While trad4 provides full concurrency, it is entirely lock-free. This means you never have to worry about obscure race conditions or deadlocks.

Trad4 is released under the LGPL. This is the same licence gcc & glibc use, and it allows you to link trad4 to a proprietary system and release that proprietary system under any licence you choose.

What is new in this release:

  • Support for 3rd party libraries has been added.
  • Inheritance of interface now allows for inherited type specialization.
  • Abstract, concrete, and (where applicable) inheritance graphs are now generated for you in .dot file format.
  • Featured in this release are a pair of concurrent digital signal processing apps: additive_synth and its inverse fourier_transform.

What is new in version 3.0 Beta 02:

  • The ability to pass in compiler flags (-O3, -g) has been added (append to CXXFLAGS as needed).
  • A compiler warning caused by certain kinds of structures has been fixed.
  • A single-threaded mode where the master thread does all the work has been added (export NUM_THREADS=0).
  • The namespace t4 has been added to prevent trad4 type name clashes with external libraries.
  • The script benchmarker.sh has been added (see the Analysis section on the main website for details).
  • Trad4 now compiles on 64-bit platforms.

What is new in version 3.0 Beta 01:

  • For this release the precompiler has been re-written to support nested and stand-alone structures. It's also much improved from an architectural perspective.
  • Two applications are included in this distribution. The first is jpm_cds v1.1, which has had the precomp_v2 workarounds fixed but is otherwise unchanged. The second is test_app, an application designed to exercise the precompiler, and demonstrates how the nested structures work.
  • Some work remains before the 3.0 release scheduled for late-June. This includes:
  • Fix compiler warning on certain structures
  • Beef up validation
  • Object states
  • Improve DEBUG on nested structures (maybe - this is tricky)
  • Single-threaded mode
  • Ability to pass in compiler flags ( -O3, -g etc )
  • Upgrade all applications to v3
  • The Manual will get an extensive update
  • The website will be redesigned

What is new in version 2.0.4:

  • These changes to trad4 are centered around the porting of the ISDA CDS Standard Model to trad4, the result of which (jpm_cds) is distributed with this release.
  • Support has been added for typedefs and chars.
  • Support for structs has been extended.
  • Several bugs that the jpm_cds port exposed have been fixed.
  • Validation and reporting at both precompile and run time has been improved.

What is new in version 2.0:

  • Arrays of native structs have been added to the pub section.
  • Native enums and constants have been added.
  • New applications are now easier to create with the script create_new_app.sh.
  • Objects can now subscribe to more than one object of each type, and this has caused the sub syntax to change.
  • NUM_THREADS is now exportable from the command line.
  • Also included are various changes related to bugfixes, code clean-up, and validation.

What is new in version 2.0 Beta 02:

  • This distribution contains two large databases - one for each application. These should be used for stress-testing and performance analysis. You can untar this file over your existing database directory. black_scholes_1M.db contains around 1M black_scholes objects. bond_risk_850k.db contains around 850k bond_risk objects.

Similar Software

Comments to Trad4

Comments not found
Add Comment
Turn on images!