• 1 Post
  • 71 Comments
Joined 3 years ago
cake
Cake day: July 6th, 2023

help-circle
  • I simply chose my field based on what I knew I enjoyed. I already had a job with working in systems, and I had HPC/FPGA experience from undergrad. Basically, I choose topics that I had at least a basic understanding and desired to expand into mastery.

    I will be honest and say I don’t think you’ve really thought this through. I would really weigh the pros and cons of the degree. Think about what you’d do instead of pursuing a degree. Identify a specific job you would want after you get your degree. If you only want to teach, you could be an instructor at a University, but the pay will not be good. If you want to do research, doing reaearch at a university level will require a PhD. Research centers will hire MS holders, but as engineers rather than researchers. If you want an industry job, make sure you actually need the degree you are thinking of getting.

    For 99% of people, carrying on with the degree they have is the better choice. In your case I’d either make sure you consider the above or only pursue a master’s if you truly cannot get the job you want with self-teaching.


  • I don’t mean python and SQL. Anyone with a decent software background can pick that stuff up. As an example, my background is in high performance computing, networking, systems, and FPGAs. All of these are fields (well, maybe not FPGAs) that ML/AI rely heavily on, but if AI/ML disappeared tomorrow they’d still be incredibly relevant. Another approach is to study a domain science and apply AI/ML. For example, high energy physics leverages AI/ML, at least in research.

    TBH, “wanting a good job” is a very generic response that needs more context. Are you moving from somewhere other than software? If you already have a software background, you might be better of self-teaching. If you are actually interested in research/teaching, that needs to be thought through very thoroughly. I say this as someone who just finished their PhD in CS, just to give context as to why I am being particularly intense on this point.


  • I would not enter AI/ML for one simple reason: it is oversaturated. Everyone and their brother is in tgis field, and even those outside of it still study it and us it. Unfortunately the way to stand out within AI/ML field is to have a very good mathematics/statistics foundation and really understand the theory behind it. You would be better served by getting skills in another field that AI/ML relies on or where AI/ML can be applier.

    BTW, you should also state what you plan on doing with your degree. There is no point in getting a degree if there isn’t a concrete benefit to doing so.











  • I’m not really an OS guy, so forgive me if this question has an obvious answer. When a thread migrates, it keeps its stack and register, thus any data contained within this can be used in the destination process (correct me if I’m wrong). Thus sending a message could be as simple as migrating a thread and having that thread copy data from its registers or stack memory to the current process’s memory space. However, how does the thread find process-specific addresses and handles (e.g. a mutex)? For example, I’m picturing a scenario where you are implementing an MPI library and want to use thread migration to send (small) messages from one local process to another. The thread orchestrating the send simply loads the data from memory and migrates, but how will it know where to store the data to? Would there need to be a data structure stored in a fix offset in memory that contains the destination address of the receiving process?