• C++ Programming for Financial Engineering
    Highly recommended by thousands of MFE students. Covers essential C++ topics with applications to financial engineering. Learn more Join!
    Python for Finance with Intro to Data Science
    Gain practical understanding of Python to read, understand, and write professional Python code for your first day on the job. Learn more Join!
    An Intuition-Based Options Primer for FE
    Ideal for entry level positions interviews and graduate studies, specializing in options trading arbitrage and options valuation models. Learn more Join!

multi-threaded semaphore C++

Joined
6/19/08
Messages
115
Points
26
Do you require multi-threading knowledge in C++ for getting a job as a quantitative analyst.?
 
Simple (and boring) answer - depends on which house do you go. But in my view, it is always a good idea at least to have some knowledge.
 
how much knowledge? It will take so much time to prepare everything for interviews so I need to know the importance of multi-threading for quant positions. should I spend time to learn it?
 
how much knowledge? It will take so much time to prepare everything for interviews so I need to know the importance of multi-threading for quant positions. should I spend time to learn it?

Multithreading is easy if you think about it naturally. Semaphores are basically locks. If you lock a door (resource = room) you need to open it first to access it. What happens if two persons try to access the room simultaneously. One will have to wait.

All the concepts of multithreading are similar. Just search for any basic tutorial to start off with. It should not be difficult.
 
I will follow Andy's advice.

Multithreading is a complicated topic and if you don't know it well enough, you will get DESTROYED in an interview.
 
Alain is right. Your resume sets a level of expectation, and you must be prepared to answer questions on any part of it at all, in depth.

Thus it's a gabling game. If the level of skills claimed is too low, they will not interview you, and if it is too high you get blown away.

Threading in C++ is one of my filters for being a real programmer, but not the only one.
 
Agree with DominiConnor and Alain. Your resume need to interest your potential employer enough but at the same time manage the interviewers' expectation (i.e protect yourself). It is not easier than learning multi-threading ;)
 
Learning won't take more than 1 fullday for interview. Hands on is different topic although. As working in multithreading/c++ on unix for 7 years; suuggesting few tips.

1. Google it and try to write small samples creating threads; use join, mutex, conditional variables etc.
2. Learn multithreading design pattern like boss-worker (static/dynamic), pipe model, peer model.
3. Try for producer/consumer problem.
4. Few common interview questions.
a) About multithreading internals, context switching, scheduler algo, join, stack size config etc.
b) Why multithreadthreading not select() for socket programming
c) Diff between mutex and semaphore
d) Abot race condition, deadlock; how to detect deadlock and avoid it
e) about conditional avariable

Hope this helps. Thanks.
 
It also depends on what's interviewer's expectation about your real/practical experience. I agree that multi-threading concepts are not difficult to understand (may things are simply common sense), but it is not hard to spot whether the knowledge is gained from books or practice.

As an interviewer, I will generally think having some basic knowledge even if they come from book is better than none ... unless the candidate tries to present a false impression that he has real practical experience.

So from the candidate perspective, it is sometimes an art to decide what to put on his CV / say in an interview. :)
 
Alain is right. Your resume sets a level of expectation, and you must be prepared to answer questions on any part of it at all, in depth.

Thus it's a gabling game. If the level of skills claimed is too low, they will not interview you, and if it is too high you get blown away.

Threading in C++ is one of my filters for being a real programmer, but not the only one.

I wanted to go in the interview starting from September. I have only read Baxter and Rennie in finance and I was starting to read Mark Joshi's book.
I have programmed more in C and only have done elementary C++. I did do a short course in C++ seven years ago in IIT but only now I am starting to use C++ again.
So what exactly are the filters for being a real programmer apart from threading? I will try to do as much as possible within two months( i will be doing joshi's book on programming) and it will be very helpful if you guys can tell me what all I should learn in C++. How important are knowing all data structures?
 
Back
Top