Citadel Securities hires 20-year Microsoft vet in a new tech leadership role
https://www.citadelsecurities.com/wp-content/uploads/sites/2/2022/07/Citadel-Securities-Hires-20-Year-Microsoft-Vet-in-a-New-Tech-Leadership-Role.pdf
QUOTE
Concepts (and constraints) are predicates that determine whether a type is a member of a set. You do not need to explicitly declare whether a type is a model of concept (an instance of a type class). That's determined by a set of requirements and checked by the compiler. In fact...
This is a PC using C++20 and Agents library.
I'm showing off my skills here 🤖
(Rust supports somethin similar == channels)
// Test101ActorConcepts.cpp
//
// Simplest example of a system. Context diagram consists only
// of Input and Output systems.
//
// We use C++20 Concepts to replace V1...
No problem. Good luck.
BTW IMHO Agents >> objects. I have used them for producer-consumer apps. I find it cool.
https://learn.microsoft.com/en-us/cpp/parallel/concrt/asynchronous-agents-library?view=msvc-170
Some Q
1. Do you have a catch block ==> can tell what the error is.
2. My SynchronisedQueue is thread safe AFAIR it is essential(?)
3. TRY SynchronisedQueue instead of IPC::deque??? one possible issue?
4. ipc:: is nice
5. Allocation thread-safety: Allocation and deallocation are not...
Plan B ? Message Queue
// Introduction to the Boost C++ Libraries - Volume II - Advanced Libraries
//
// Chapter 12.4 - Boost Interprocess: Process Synchronisation - Message Queue
//
// Producer inserts messages in the queue with a priority.
// Consumer retrieves the messages from the queue.
//...
V1 ; with my own synchronised queue, runs OK
// Introduction to the Boost C++ Libraries - Volume II - Advanced Libraries
//
// Chapter 12.3 - Boost Interprocess: Process Synchronisation - Condition Variable
//
// (C) Datasim Education BV 2011
#include "SynchronisedQueue.hpp"
#include...
I can't remember about deque .. let me look up my stuff (of > 10 years ago). I have 2 chapters in my Boost II book on deque and message_queue.
Actually, your code looks good. I used a) find_or_construct, b) shm ... create only.(?)
We now turn our attention to showing how to use shared memory in...
If you like my code for this, give us a shout :)
Not sure what the best library is these days, maybe a good start-off? The principles are standard.
https://www.boost.org/doc/libs/1_78_0/doc/html/interprocess.html
In which language?
https://www.boost.org/doc/libs/1_85_0/doc/html/interprocess/sharedmemorybetweenprocesses.html
It's also in my Boost C++ book Vol II.
Which seminars are they?
You can join the Datasim online courses at any time. The approach is both mathematically rigorous (I have 3 degrees in mathematics) and highly relevant to computational finance.
The student price is Euro 1500 for the first course and Euro 995 for any course after that...
Excel is also a database, meaning you can check the accuracy of your numerics. Console output and matplotlib are less in this regard.
Excel is (still) a standard in front office I reckon.
Just curious, what's the rationale for a C library? Libraries like Eigen are C++.
Of course, Python has lots of useful stuff.
https://docs.scipy.org/doc/scipy/tutorial/linalg.html
C++ has support for multithreading and (parallel) promises.
Boost C++ Asio etc.
NEW LIBRARY
https://www.boost.org/doc/libs/1_86_0/libs/redis/doc/html/index.html
Here is a catalogue of reusable software solutions for all kinds of applications.
Domain classification is like ornithology and design blueprints: does my application look familiar? Ask yourself this question before jumping headfirst into code!!
QUOTE
I think you shall not use C++.
It is too difficult for you. You cannot comprehend. You CANNOT use it. It is too UNSAFE.
It uses abhorrent pointers. And malloc. And free. And these pesky new and new[], delete and delete[]. Nightmare. Not talking about the templates. You cannot understand...
How do you set up a scalable software architecture?
https://en.wikipedia.org/wiki/List_of_software_architecture_styles_and_patterns
to avoid a software ball of mud?
It's one thing having building blocks but you need some kind of design blueprint, otherwise there's no point.
Douglas C...
My 2 cents,
In my experience, people do PhD because they want to. it's hard work. And topic topic is intellectually demanding and rewarding.
Real and Functional Analysis were my favourites in undergrad and I used it in applied research (see my websites)
I feel you should gear up to PDE/SDE...
https://www.datasim.nl/onlinecourses/97/distance-learning-ordinary-and-partial-differential-equations
Student price Euro 1500
This is the only course focused on finance.
On UCB's accredited list for MFE students.
https://www.datasim.nl/testimonials
https://www.phoronix.com/news/Rust-Linux-Maintainer-Step-Down
Hey folks,
This is as short a series as one can be: just removing myself as maintainer of
the Rust for Linux project.
I am retiring from the project. After almost 4 years, I find myself lacking the
energy and enthusiasm I once had...
Here is my ADI stuff from a while back (all quants had problems...lots of horror stories because they don't know wave equation)
My ADE post was to show how to document.. All I get is a graph.
Hmm, still very incomplete, unfortunately.
eg.do you have an A_max??
If this is an academic project as you mention, then I assume you write up the maths first?
https://en.wikipedia.org/wiki/How_to_Solve_It
For ADI, one component is
dV/dt + c dV/dA = ...
and crucial essentials are here
https://ocw.mit.edu/courses/16-920j-numerical-methods-for-partial-differential-equations-sma-5212-spring-2003/a1b0398626222c735a8bac5b261c43ad_lecs8_9_10_notes.pdf
hth
Ok, maybe pinpoint the problems, no upwinding..
https://www.diva-portal.org/smash/get/diva2:444271/FULLTEXT01.pdf
my harsh conclusion: ivory tower is behind curve WRT FDM.
My first piece of advice is: DON'T USE ADI for Asian options, believe me. Most quants use it as a recipe down the last twenty years.
ADE is better
https://onlinelibrary.wiley.com/doi/epdf/10.1002/wilm.10366
https://onlinelibrary.wiley.com/doi/epdf/10.1002/wilm.10620
Note we use...
One of my MSc thesis students at the University of Birmingham (MSc finance) has an Aerodynamic degree. Her thesis with me was very good.
I have a connect request to you on LI .
I was the first to have resurrected Fichera and ADE and introduced them in computational finance.
ChatGPT is rubbish here: bluffing, misleading and 95% woefully incorrect.
Platitudes galore.
A modest proposal. If you someone/anyone have any time ask ChatGPT
"What is the Fichera function and how is it used in combination with Alternating Direction Explicit (ADE) methpd, expeciallly for PDE-based option pricing".
thx
@Paul Lopez
@APalley
@Andy Nguyen
Fortran is the best for HPC (I started with Fortran 66..)
It is a niche, however.
Before building a C++ portfolio, first learn C++ properly, no half measures.
It might come as a shock that C++ has no native Matrix structure.
This book might give some relevant info
https://onlinelibrary.wiley.com/doi/book/10.1002/9781119719731
And C++ is kind of vital.
Are you using Fortran?
Computational Materials Science (i.e. physics)
What is the focus? mathematical or more experimental?
In general, physics is not (necessarily) maths. Not a bad thing. Just saying.
Everybody speaks English. Anglo-Saxons, for example (~ native English speakers) are notoriously woeful at foreign languages.
Do you wish to work in France?
C++ would be a better language to learn.
Charles V, Holy Roman Emperor: "To God I speak Spanish, to women Italian, to men French, and to...
Rule of thumb
Let M(n,m) == matrices with n rows and m columns
A, B matrices then C = A*B is possible if #columns(A) = #rows(B)
A ~ M(n,p), B ~= M(p,m)
C = A*B
then C ~ M(n,m).
also applies when B is a vector.
finally realize that np.array() defaults to a 1xn vector but standard math notation uses nx1 vectors?
Maybe avoid defaults; ReadTheDocs?
import scipy.sparse.linalg as spla
import numpy as np
from numpy import linalg as LA
from scipy import linalg
import random
print("Solve Ax = b")
A =...
Take a step backwards and focus on the problem (ignore the bells and whistles).
numpy is only a library.
#QR decomposition
r = c = 4
A = np.random.randn(r, c); print(A)
Q,R = np.linalg.qr(A); print(Q); print(R)
# Cross-check
print (np.matmul(Q,R))
QR = np.matmul(Q,R)
for i in range(0,r)...
I like these foundations, others also look good
- Differential equations
- Numerical analysis
- Partial differential equations
Learn to program a bit in Python and C++, for example.
Wow, then 25 hours/week for gymmastics sounds logical.
In Ireland, we are supporting Rhys Joshua McClenaghan in Paris.
on topic, my 2 cents
. QN C++
. My ODE/PDE course is popular (e.g. UCB), follows on from Calc-3...
Things like numerical analysis, ODE, PDE, C++, optimisation.
Measure theory is not really so important as some might lead to believe (BTW I did several MT courses as undergrad).
https://www.datasim.nl/onlinecourses
The 1st and 2nd courses are OK but seem to miss the more interesting analysis.
Linear Algebra ... no numerical linear algebra, which is daily practice.
https://www.datasim.nl/onlinecourses
Visual Studio 2022 does not suppport Gaussian integers.
... not end of world, stilll, error messages are scary for some.
Gaussian integer - Wikipedia
Code: Select all
// Not on VS2022
// std::complex<int> com(1, 1);
// std::complex<int> com2(1.0, 1);
// std::complex<float> com3(1.0...
Here is a nicely balanced book on SDE by two top numerical analysts
https://epubs.siam.org/doi/10.1137/1.9781611976434
i.e. continuous space to discrete space (as it should be).
This (my) ODE/PDE course is on the UCB official list
https://www.datasim.nl/onlinecourses/97/distance-learning-ordinary-and-partial-differential-equations
A summary high-impact C++ features (personal view)
C++11 is a version of the ISO/IEC 14882 standard for C++ and it replaced C++03; it was later replaced by C++14. It is a major update to the language and its goals were to improve the quality in general, in particular promoting efficiency...
Feels a bit like that.
Analogy? If a house were built using different languages, then we get a Rust programmer to do the (low-level) plumbing work.
C might be >> Rust?
Just out of curiosity, I would be interested in technical (not idiosyncratic, altho' they exist as well) reasons for choosing Rust. I have 35 years C++ exposure and I learned essential Rust in about 5 days. In a sense it is an extreme mini C++.
Channels have potential but they are nowhere...
I would imagine that with a maths degree then Oxford, Imperial, Warwick might be good choices. In any case, it's a start.
edit: C++ and Python are useful skills.
The following code uses features from C++20 and QN Adv C++ course that uses Concepts
// At this moment I have a vague idea on how I would do it in Rust; is it even worth the effort..
@APalley
@MichaelLewis
// Test101ActorConcepts.cpp
//
// Simplest example of a system. Context diagram...
That's good summary.
My hunch is that inside Rust there is an actor model trying to get out. But I fear that this is not good for producer-consumer pipeline programs.
I have experimemented with Actors in C++, C# and Python. All nice stuff. Couldn't find much in Rust...
I would learn QN C++.
AFAIK Erasmus would not a very quanty university in the US sense. But check it out. NL tends to focus on the econometrics side of things.
Utrecht uni and CWI have research quant students, but that's another story.
In the old days, Nirvana was: work in R'dam, live in the...
Here is a nicely balanced book on SDE by two top numerical analysts
https://epubs.siam.org/doi/10.1137/1.9781611976434
i.e. continuous space to discrete space (as it should be).
Most books and articles on SDE give numerical methods short shrift... In fact, most books only tell half the story...
Some years ago when the giant dinos Corba and COM roamed the great plains and shared the spoils, then a clever chap had the brainwave of creating a common interface to them, meaning only 1 interface to learn.
Due to heavy leaking they had to learn THREE interfaces! Go tell management.
Rust and...
With your experience, you can leverage it.
And age is probably an advantage, depending on the role. I reckon get foot in door could be an issue.
Lattice-Boltzmann Method CFD using CUDA and C++
Not many who can say that.
Option 2 of my poll has to do with actors (and an actor is not an object)
1, Actors use message passing ==> no shared data => problem solved?
2. Null references ==> non-issue in typical producer-consumer applications??
So, objects were NOT built for concurrent access, but actors are...
Quizzie
1. channels can be found in C++ Actor libraries
Asynchronous Agents Library
2. C++ Concepts are a superset of Rust traits.
3. Would you write a CAD library or Black Scholes option pricer in Rust?
4. How does Rust generics compare to C# generics or C++ templates? The follow-on...
I'll let them argue among themselves over there:) but I see some use cases of interest to C++.
1. vanilla structs
2. generic structs
3 traits
4 channels
You learn this in a week if you know the adv C++ course. No kidding.
Why not just learn Rust _and_ C++?
Your post is a bit ambiguous, it is not precise. C++ Concepts were based on Haskell TYPECLASSES. But who cares now, it works.
I know C++ Concepts and it then took me a day or so to learn Rust traits..
It takes 15 years before a technology becomes accepted.
Nope. Correlation is not causation!
I spent the last 2 weeks experimenting with Rust code and benchmarking with C++ (BTW I was the 1st C++ programmer in the Netherlands in 1990 and I originated the QN C++ courses).
summary: Rust is rather incomplete compared to C++, a kind of carbon copy of...
A safe pair of hands.
// unsafe code 101
unsafe fn dangerous() {}
unsafe
{
dangerous();
}
// unsafe code, raw ptr and dereferencing
let mut num = 5;
let r1 = &num as *const i32;
let r2 = &mut num as *mut i32;
//println!("r1 is: {}", *r1);
unsafe
{...
“When I was a boy of 14, my father was so ignorant I could hardly stand to have the old man around. But when I got to be 21, I was astonished at how much the old man had learned in seven years.”
Mark Twain
A little learning is a dangerous thing ;
Drink deep, or taste not the Pierian spring ...
In cause some people missed this quote
This is a symptom of a larger immaturity in the crypto space. Crypto is replete with recent students who chase after buzzwords and new fads but can't see the forest from the trees. They don't understand the pitfalls of experimenting with a new technology...
I am a veteran in this industry and I know that computer scientists love new technologies. Many (technolgies) turn out to be fads. (caveat: I am not CS).
In 1991 there were at least 10 object-oriented languages.
All the functionality in Rust is in C++20 (and more).
Rust and OOP is not there...
Can you back up your claims? Not everyone is doing crypto.
BTW I am working on a report/critique
"If Rust is the answer, then what is the question?" (w/o handwaving or waffle).
Rust is way down the list here #18.
https://www.tiobe.com/tiobe-index/
Congratulations!
General question, @Fangtong
How did you find the usefulness of traits and C++20 Concepts in particular?
Game changer and highly future-proof imo. Rust has exactly the same features, but lesser. It is lagging.
@Devon Kaberna
@Paul Lopez
@APalley
Good idea. This week I'm just kicking the tyres (like uchi komi) and then I can go to a small app, e.g. Black Scholes (call C++/C maths function from Rust). yes??
Rust does not have much OOP support ..
Our goal is eventually interop.
I spent the last 3 days doing Rust programming for a bit of relaxation (am almost an expert by now :), but being my age means I'm a fast learner). I plan to spend a few more days to suss out more features. It is just a C++20 lookalike; if you know C++20 (and you do) then it is a piece of cake...
Developers use Rust for general programming, web development, data science and video gaming, as well as for augmented reality (AR), virtual reality (VR) and blockchain projects.
OK, any other applications?
Question: has anyone written an in-depth, "scientific" comparison of Rust and C++ at a level higher than "factional cheerleading" (no offence intended :-)?
I found blogs like this.
https://www.techtarget.com/searchapparchitecture/tip/Rust-vs-C-Differences-and-use-cases
In particular...
A general related remark:
Remark on code speedup.
The prevailing "mindset" is to write sequential (single-threaded) code and to profile it to locate performance bottlenecks. Then we pepper the code using #pragma and @decorator etc. This is fine-grained paralled pattern (e.g. parallel loop)...
I just caught ChatGPT-4 blatantly lying about the differences between user-level and system-level OS threads. When I confronted it, it confessed, apologized, and thanked me for the correction. Students, beware: Unless you can tell the right from the wrong, assume that ChatGPT-4 lies to you.
I offer Maths courses for MFE etc.
e.g. ODE/PDE, Numerics
(Students Euro 1500 1st course, Euro 995 each course after first course).
https://www.datasim.nl/onlinecourses
https://www.datasim.nl/testimonials
"To prevent the unexpected execution of batch files, you should consider moving the batch files to a directory that is not included in the PATH environment variable," Ryotak advised.
"In this case, the batch files won’t be executed unless the full path is specified, so the unexpected execution...
Firsy, we intend documenting it in book form. I get quite a number of requests for these kinds of application-oriented (for want of a better name) courses.
a lot of effort and work..:whistle:
My feeling is if you know C++ then learning Rust is easy.
e.g.
Rust is a multi-paradigm, general-purpose programming language that emphasizes performance, type safety, and concurrency. It enforces memory safety—meaning that all references point to valid memory—without a garbage collector. To...
“Do not judge, or you too will be judged. For in the same way you judge others, you will be judged, and with the measure you use, it will be measured to you."
Matthew 7:1-6
As an author, I would suggest doing some grammar checks. For example, " We will not." should be "we shall not".
It could be structured better.
Personally, I hate the widespread use of commas to structure sentences.
We should entertain all scenarios, one of which Rust is and will remain a niche product. It may have vocal cheerleaders. Due diligence and all that.
Of course, I still think Rust-C++ interop is important.
So, Rust is a silver bullet?
If you are getting segfaults with smart ptrs probably means you are doing something wrong.. At the least, this should be investigated.
But the core question remains: what is the root cause of this fiasco?
General Remark: wondering why developers have issues with pointers?
1. Are you using raw or smart pointers?
2. Incorrect use of raw pointers (code is a ball of mud with no centralised control).
3. Wrong design, no modular decomposition.
4. Developer does not fully understand pointers/using...
one more thing..
If Rust is the answer, what is the question, i.e. why all the hullabaloo?
Thinking out loud.
1. Better memory mgt than C++.
2. Better language features than C++ (at face value, can't imagine that).
3. Call C++ from Rust(*). 3A. vide versa.
4. Rust's channels look promising...
Volume II is the interop book.
Am thinking about Rust/C++.
What are the uses cases?
1. Call C++ from Rust
2. Vice versa
3. Using Rust Actor frameworks?
no idea 🙃
What about C++ Rust interop
https://google.github.io/comprehensive-rust/chromium/interoperability-with-cpp.html
Q What is CXX
A C++ rotated \pi /4
//
CXX was coined by John Carolan
http://www.edm2.com/index.php/Glockenspiel_C%2B%2B...
Our manuscript is in the copy/print edit phase. Contents are ready. We discusss Cython.
I Volume II (2025 hopefully) ==> more interop e.g. pybind11, Boost Python.
Thank you!
My company Datasim was probably the first OOP/C++ in the Netherlands and we worked with industrial/business clients from the outset. Our designs were stress-tested in real-life environments. And having a mathematical background and having worked in industry doesn't do any harm :)
If...
Why not do both?
A big miss in C++ is support for asychronicity, events, signals, Actor model.
TBH, saying that Rust is great for memory management is not all that exciting.
A general remark on learning.
It is always human to want to cram in as much stuff as possible, but this is not a good idea for at least 4 reasons. Compare to getting a black belt from blue belt level.
1. Blue to brown
2. Practice as a brown for a year
3. Brown to black.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.