This document summarizes new features and improvements in Visual Studio 2015 and future directions for C++ development. Key highlights include improved C++ refactoring tools, better IDE productivity features like single-file IntelliSense, enhanced diagnostics tools, support for new C++11/14 language features, and a focus on making Visual Studio the best IDE for all C++ developers.
The full video from CppCon is available here: https://www.youtube.com/watch?v=PVYdHDm0q6Y
C++ provides a much richer set of abstractions than C. Classes, templates, overloading, and other core C++ features can be leveraged for more readable syntax, better compile time typechecking, more open ended genericity and improved modularity. On the flip side, C89 still boasts some advantages over C++, especially when viewed through a pragmatic lens. C ABIs on many platforms have been stable for decades, practically every language supports binding to C code through foreign function interfaces, and including nearly any C89 header has a negligible effect on compile time on modern computers.
The hourglass pattern provides the best of both worlds. By placing a headers-only C++ interface on top of a minimal C89 interface, it makes ABI issues a non-concern, and enables just a single binary to be shipped for a given platform. It makes providing bindings from other languages easier, and prevents ABI issues like incompatibilities between debug and release variants of runtimes.
This talk provides an overview of the pattern and teaches practical techniques for its implementation using C++14. Real shipping projects inspired the best practices described in the slides.
Code corresponding to this presentation can be found here: https://github.com/CppCon/CppCon2014/tree/master/Presentations/Hourglass%20Interfaces%20for%20C%2B%2B%20APIs%20-%20Stefanus%20Du%20Toit%20-%20CppCon%202014/code
The LLDB Debugger in FreeBSD by Ed Masteeurobsdcon
Abstract
LLDB is a modern, high-performance debugger in the LLVM family of projects, and is built as a modular and reusable set of components on top of the Clang/LLVM foundation. It was originally developed for Mac OS X, but now supports FreeBSD and Linux as well, with ongoing work for Windows support.
This presentation will provide an overview of the design of LLDB, compare it with the existing GNU debugger in the FreeBSD base system, and present the path to importing LLDB as FreeBSD's debugger.
Speaker bio
Ed Maste manages project development for the FreeBSD Foundation and works in an engineering support role with Robert Watson's research group at the University of Cambridge Computer Laboratory. He has been a FreeBSD committer since 2005.
C++ Code as Seen by a Hypercritical ReviewerAndrey Karpov
We all do code reviews. Who doesn't admit this – does it twice as often. C++ code reviewers look like a sapper. .. except that they can make a mistake more than once. But sometimes the consequences are painful . Brave code review world.
The full video from CppCon is available here: https://www.youtube.com/watch?v=PVYdHDm0q6Y
C++ provides a much richer set of abstractions than C. Classes, templates, overloading, and other core C++ features can be leveraged for more readable syntax, better compile time typechecking, more open ended genericity and improved modularity. On the flip side, C89 still boasts some advantages over C++, especially when viewed through a pragmatic lens. C ABIs on many platforms have been stable for decades, practically every language supports binding to C code through foreign function interfaces, and including nearly any C89 header has a negligible effect on compile time on modern computers.
The hourglass pattern provides the best of both worlds. By placing a headers-only C++ interface on top of a minimal C89 interface, it makes ABI issues a non-concern, and enables just a single binary to be shipped for a given platform. It makes providing bindings from other languages easier, and prevents ABI issues like incompatibilities between debug and release variants of runtimes.
This talk provides an overview of the pattern and teaches practical techniques for its implementation using C++14. Real shipping projects inspired the best practices described in the slides.
Code corresponding to this presentation can be found here: https://github.com/CppCon/CppCon2014/tree/master/Presentations/Hourglass%20Interfaces%20for%20C%2B%2B%20APIs%20-%20Stefanus%20Du%20Toit%20-%20CppCon%202014/code
The LLDB Debugger in FreeBSD by Ed Masteeurobsdcon
Abstract
LLDB is a modern, high-performance debugger in the LLVM family of projects, and is built as a modular and reusable set of components on top of the Clang/LLVM foundation. It was originally developed for Mac OS X, but now supports FreeBSD and Linux as well, with ongoing work for Windows support.
This presentation will provide an overview of the design of LLDB, compare it with the existing GNU debugger in the FreeBSD base system, and present the path to importing LLDB as FreeBSD's debugger.
Speaker bio
Ed Maste manages project development for the FreeBSD Foundation and works in an engineering support role with Robert Watson's research group at the University of Cambridge Computer Laboratory. He has been a FreeBSD committer since 2005.
C++ Code as Seen by a Hypercritical ReviewerAndrey Karpov
We all do code reviews. Who doesn't admit this – does it twice as often. C++ code reviewers look like a sapper. .. except that they can make a mistake more than once. But sometimes the consequences are painful . Brave code review world.
Mistakes to avoid when designing DLLs and thoughts about other platforms to deliever with your DLL.
Some compilers provide mechanisms to automatically export all functions and variables in a library that have external linkage. Avoid using any such mechanisms. Export exactly the interface that you need to export, and no more.
Lors de cette présentation, nous apprendrons à créer des applications Web plus rapidement et avec moins d'erreurs en utilisant un langage de programmation puissant et amusant.
Agenda
- Installer TypeScript et configurer un nouveau projet.
- Tirer avantage des types de données.
- Développer en Objets avec TypeScript
- Ecrire de meilleures fonctions
- Retrouver vos données avec LINQ
- Programmer de manière asynchrone
- Bonnes pratiques
- Avantages et inconvénients des projets TypeScript
- Conclusion et Discussion
Top 10 bugs in C++ open source projects, checked in 2016PVS-Studio
While the world is discussing the 89th Ceremony of Oscar award and charts of actors and costumes, we've decided to write a review article about the IT-sphere. The article is going to cover the most interesting bugs, made in open source projects in 2016. This year was remarkable for our tool, as PVS-Studio has become available on Linux OS. The errors we present are hopefully, already fixed, but every reader can see how serious are the errors made by developers.
What static analyzers can do that programmers and testers cannotAndrey Karpov
Bad hashing; Errors in handlers of errors; CWE-14: The compiler deletes the code to clear the buffer; Tribulations of the letter 'я'; No one tests comparison functions; Blah-blah code; Errors in tests; Walking on thin ice; SAST, CWE, SEI CERT, MISRA, DevSecOps, SonarQube, IncrediBuild, CI.
What has to be paid attention when reviewing code of the library you developAndrey Karpov
Developers of libraries have to be more diligent than «classic» application programmers. Why? You never know where and when the library will be used: Platforms; Compilers; Optimizations; Usage scenarios.
The presentation helps us in understanding the different concepts associated with TypeScript. What is TypeScript? Why is TypeScript used and the different applications of TypeScript. For more information you can simply visit: http://mobile.folio3.com/
Not so long ago Microsoft announced a new language trageting on front-end developers. Everybody's reaction was like: Why?!! Is it just Microsoft darting back to Google?!
So, why a new language? JavaScript has its bad parts. Mostly you can avoid them or workaraund. You can emulate class-based OOP style, modules, scoping and even run-time typing. But that is doomed to be clumsy. That's not in the language design. Google has pointed out these flaws, provided a new language and failed. Will the story of TypeScript be any different?
Why it is profitable to use static analysis, how can it solves problems for developers, testing, security researches and quality managers.
This session gives overview of static analysis - what is it for, what problems it solves, overview of commercial and free tools available as eclipse plugins (for JDT and CDT), how to adapt it for the organization to help developers.
Mistakes to avoid when designing DLLs and thoughts about other platforms to deliever with your DLL.
Some compilers provide mechanisms to automatically export all functions and variables in a library that have external linkage. Avoid using any such mechanisms. Export exactly the interface that you need to export, and no more.
Lors de cette présentation, nous apprendrons à créer des applications Web plus rapidement et avec moins d'erreurs en utilisant un langage de programmation puissant et amusant.
Agenda
- Installer TypeScript et configurer un nouveau projet.
- Tirer avantage des types de données.
- Développer en Objets avec TypeScript
- Ecrire de meilleures fonctions
- Retrouver vos données avec LINQ
- Programmer de manière asynchrone
- Bonnes pratiques
- Avantages et inconvénients des projets TypeScript
- Conclusion et Discussion
Top 10 bugs in C++ open source projects, checked in 2016PVS-Studio
While the world is discussing the 89th Ceremony of Oscar award and charts of actors and costumes, we've decided to write a review article about the IT-sphere. The article is going to cover the most interesting bugs, made in open source projects in 2016. This year was remarkable for our tool, as PVS-Studio has become available on Linux OS. The errors we present are hopefully, already fixed, but every reader can see how serious are the errors made by developers.
What static analyzers can do that programmers and testers cannotAndrey Karpov
Bad hashing; Errors in handlers of errors; CWE-14: The compiler deletes the code to clear the buffer; Tribulations of the letter 'я'; No one tests comparison functions; Blah-blah code; Errors in tests; Walking on thin ice; SAST, CWE, SEI CERT, MISRA, DevSecOps, SonarQube, IncrediBuild, CI.
What has to be paid attention when reviewing code of the library you developAndrey Karpov
Developers of libraries have to be more diligent than «classic» application programmers. Why? You never know where and when the library will be used: Platforms; Compilers; Optimizations; Usage scenarios.
The presentation helps us in understanding the different concepts associated with TypeScript. What is TypeScript? Why is TypeScript used and the different applications of TypeScript. For more information you can simply visit: http://mobile.folio3.com/
Not so long ago Microsoft announced a new language trageting on front-end developers. Everybody's reaction was like: Why?!! Is it just Microsoft darting back to Google?!
So, why a new language? JavaScript has its bad parts. Mostly you can avoid them or workaraund. You can emulate class-based OOP style, modules, scoping and even run-time typing. But that is doomed to be clumsy. That's not in the language design. Google has pointed out these flaws, provided a new language and failed. Will the story of TypeScript be any different?
Why it is profitable to use static analysis, how can it solves problems for developers, testing, security researches and quality managers.
This session gives overview of static analysis - what is it for, what problems it solves, overview of commercial and free tools available as eclipse plugins (for JDT and CDT), how to adapt it for the organization to help developers.
II Konferencja Naukowa : Nauka o informacji (informacja naukowa) w okresie zmian, Warszawa, 15-16.04.2013 r. Instytut Informacji Naukowej i Studiów Bibliologicznych, Uniwersytet Warszawski
The 2nd Scientific Conference : Information Science in an Age of Change, April 15-16, 2013. Institute of Information and Book Studies, University of Warsaw
Pioneers of Information Science in Europe: The Oeuvre of Norbert HenrichsWolfgang Stock
In this presentation we discuss the works and influence of Norbert Henrichs (born 1935), a pioneer of Information Science in Europe. In the context of philosophy documentation, Henrichs developed in the 1960s a dictionary-independent method of indexing: the Text-Word Method. This method works exclusively with the term material of the documents to be indexed. It starts by using a variant of syntactic indexing, viz. the formation of thematic chains. Documents indexed via the Text-Word Method form the basis for relatively ballast-free information retrieval, but also for studies in the history of ideas. Henrichs was a leading contributor to the formulation and realization of the German Information & Documentation (I&D) program (1974 – 1977). This widely noted political program planned for the world’s entire scientific and technical literature to be made available in 20 specialized information centers. Henrichs served as scientific executive director of the central German infrastructure provision within the I&D program, the “Society for Information and Documentation” (GID), from 1980 to 1985. Over the course of the 1980s, the I&D program broke down—mainly due to a lack of financing. At the Heinrich-Heine-University in Düsseldorf, Henrichs successfully developed a curriculum for information science, which—typically for Germany in the 1980s and 1990s—had no strong ties to either library science or computer science.
C++ open positions and popularity remain high as media has recently, and there is a reason for that: from the many languages and platforms that developers have available today, C++ features uncontested capabilities in power and performance, allowing innovation outside the box (just think on action games, natural user interfaces or augmented reality, to mention some). In this talk you’ll see the new features and technologies that are coming with Visual C++ vNext, helping you build compelling applications with a renewed developer experience. Don’t miss it!!
Keynote for the initial PyCon AU, 26 June 2010 at the Sydney Masonic Center. This is the grand unveiling of the Plexus project - plexus.relationalspace.org.
The eXtensible Markup Language (XML) is not a language itself, but rather a meta-language used to create markup languages to suit whatever purpose you may have. In this session you will learn the basic rules of XML and the philosophy behind it. You will also be introduced to the basics of the popular XML editor, oxygen.
Build 2016 - B880 - Top 6 Reasons to Move Your C++ Code to Visual Studio 2015Windows Developer
Visual Studio 2015 provides the best in class C++ development experience whether you are targeting Android, iOS, Linux, Windows, or IoT. With a good mix of demos and showcase for new C++ experiences, this talk goes over six great reasons why you should migrate to Visual Studio 2015 today.
The sole purpose of sharing these slides are to educate the beginners of IT and Computer Science/Engineering. Credits should go to the referred material and also CICRA campus, Colombo 4, Sri Lanka where I taught these in 2017.
After reimplement many features several times in different platforms is time to think that it should be a better way. There are many frameworks that allows the developers to write the code once and deploy it "everywhere", but the final result is an app with a non native look and feel or with an emulated look and feel that the users can see and rate according to the quality.
There are other ways to develop apps for multiple platforms without rewriting the same code over and over. I'll talk about one of that ways which consists on developing the core with C++ and implement the UI natively. This method could sound very scary because of the C++ reputation (memory leaks, the standard library, etc), but with C++11 all this has been improved in a very sweet way, so maybe it is time to take an other look at this language and see how can we take advantage of it.
Program, Language, & Programming Language
Object Oriented Programming vs Procedure Oriented Programming
About C
Why still Learn C?
Basic Terms
C Stuff
C Syntax
C Program
In both business and academia, reproducibility is the root of trust in computational results. Software engineering is critical to consistently support the work. Basic practices including systematic build, automatic tests, version control, and documentation will be discussed. The practices and a mix of programming languages enable developers to address the challenges in scientific computing by creating a flexible and high-performance platform. The fundamental idea is to generalize and segregate common constructs so that they can be reinforced during the whole cycles of code development, to enhance the confidence in the produced results. It is also necessary to engage in software development communities, as a means to improve productivity and give back.
- What's new in .NET Platform
- What's new in Visual Studio 2017
- What's new in C# 7.0: out variables, Tuples, Pattern Maching, ref locals and returns, Local Functions, More expression-bodied members, throw Expressions, Generalized async return types, Numeric literal syntax improvements
Similar to [Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanbat and ayman shoukly) (20)
Launch Your Streaming Platforms in MinutesRoshan Dwivedi
The claim of launching a streaming platform in minutes might be a bit of an exaggeration, but there are services that can significantly streamline the process. Here's a breakdown:
Pros of Speedy Streaming Platform Launch Services:
No coding required: These services often use drag-and-drop interfaces or pre-built templates, eliminating the need for programming knowledge.
Faster setup: Compared to building from scratch, these platforms can get you up and running much quicker.
All-in-one solutions: Many services offer features like content management systems (CMS), video players, and monetization tools, reducing the need for multiple integrations.
Things to Consider:
Limited customization: These platforms may offer less flexibility in design and functionality compared to custom-built solutions.
Scalability: As your audience grows, you might need to upgrade to a more robust platform or encounter limitations with the "quick launch" option.
Features: Carefully evaluate which features are included and if they meet your specific needs (e.g., live streaming, subscription options).
Examples of Services for Launching Streaming Platforms:
Muvi [muvi com]
Uscreen [usencreen tv]
Alternatives to Consider:
Existing Streaming platforms: Platforms like YouTube or Twitch might be suitable for basic streaming needs, though monetization options might be limited.
Custom Development: While more time-consuming, custom development offers the most control and flexibility for your platform.
Overall, launching a streaming platform in minutes might not be entirely realistic, but these services can significantly speed up the process compared to building from scratch. Carefully consider your needs and budget when choosing the best option for you.
Software Engineering, Software Consulting, Tech Lead, Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Transaction, Spring MVC, OpenShift Cloud Platform, Kafka, REST, SOAP, LLD & HLD.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
GraphSummit Paris - The art of the possible with Graph TechnologyNeo4j
Sudhir Hasbe, Chief Product Officer, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaYara Milbes
Discover the transformative power of the WhatsApp API in our latest SlideShare presentation, "Top 7 Unique WhatsApp API Benefits." In today's fast-paced digital era, effective communication is crucial for both personal and professional success. Whether you're a small business looking to enhance customer interactions or an individual seeking seamless communication with loved ones, the WhatsApp API offers robust capabilities that can significantly elevate your experience.
In this presentation, we delve into the top 7 distinctive benefits of the WhatsApp API, provided by the leading WhatsApp API service provider in Saudi Arabia. Learn how to streamline customer support, automate notifications, leverage rich media messaging, run scalable marketing campaigns, integrate secure payments, synchronize with CRM systems, and ensure enhanced security and privacy.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
Navigating the Metaverse: A Journey into Virtual Evolution"Donna Lenk
Join us for an exploration of the Metaverse's evolution, where innovation meets imagination. Discover new dimensions of virtual events, engage with thought-provoking discussions, and witness the transformative power of digital realms."
Navigating the Metaverse: A Journey into Virtual Evolution"
[Td 2015] what is new in visual c++ 2015 and future directions(ulzii luvsanbat and ayman shoukly)
1. Ayman Shoukry – Principal Group Program Manager – Visual C++, Microsoft
Ulzii Luvsanbat – Principal Software Engineering Manager – Visual C++, Microsoft
What’s New in Visual Studio 2015 and
Future Directions
2. A note on our mission
• Visual Studio will be the best IDE out there for EVERY C++ de
veloper.
• Not just Windows developers
• Especially for Open Source developers
• C++ is *the* language for cross platform development
• Which is why C++ development is actually growing share amongst p
ro devs
• We can make C++ development more productive
• Finish catching up on conformance, participate in standards b
odies to help make the language better. Stay caught up.
3. Saving the best for first
• Before (VS2013):
• After (VS2015):
5. Not new: Common Misconceptions
•You can still target XP in VS2015
•You can still do app-local deployme
nt
6. Demo: Language Agnostic IDE
Goodness
• Custom Window Layouts
• Touch screen enhancements
• Send-a-smile (or frown if you must)
• Find in file append
• Git and Github integration
7. Demo: C++ IDE Productivity
• Refactors (precision and accuracy)
• Create Definition <-> Declaration (multiple)
• Move function definition
• Implement Pure Virtual
• Rename
• Extract Method
• Convert to Raw String Literal
• Single File Intellisense
• Quick editing of a makefile project or file->new file and int main, etc
8. Refactoring for C++
• Extract Method (VS Extension)
Refactoring for C++
• Rename
Productivity (IDE)
9. Refactoring for C++
• Implement Pure Virtuals
Quickly implement pure virtual functions in inherited constructs
• Create Declaration/Definition
Quickly create a function’s declaration from its definition (and vice-versa)
• Move Definition Location
Move a function’s declaration inline and out-of-line
• Convert to Raw-String Literal
Convert strings littered with escape sequences into a much more easily readable form
Productivity (IDE)
std::string s = "nSome reasons this string is hard
to read:nt1. It would go off the screen in your
editornt2. It has sooooo many escape
sequences.nnThey should make a type for this called
"long" string, har har har.nnHave fun parsing
this! (maybe?)n";
std::string s = R"(
Some reasons this string is hard to read:
1. It would go off the screen in your editor
2. It has sooooo many escape sequences.
They should make a type for this called "long" string, har har har.
Have fun parsing this! (maybe?)
)";
10. Single-File Browsing and IntelliSense support
• Open any source file from disk, and enjoy basic browsing and IntelliSen
se features
(May require setting some defaults)
Productivity (IDE)
11. • Universal App
Easily create projects targeting Store and Phone simultaneously, with a unified IntelliSense exp
erience in the IDE
• Faster, Improved Database Population
Operations like Go To Definition are generally no longer blocked during solution scan, which in
turn completes much faster especially for large solutions
• Simplified QuickInfo for Template Deduction
Elimination of redundant/unhelpful information
• Auto-PCH (VS Extension)
Generate a pre-compiled header based on your project structure for faster compile time
Productivity (IDE)
12. • New and Improved Exceptions “Dialog”
Productivity (IDE)
13. • New and Improved Error List
Productivity (IDE)
14. GPU Usage (available in VS2013 Update 4)
• Launch from the Diagnostics hub
• Create real-time graphs for Frame Time, Frame Rate, and GPU Utilizatio
n
• Analyze detailed GPU usage by inspecting the GPU and CPU execution
time of each individual DirectX event
Productivity (Diagnostics)
15. Visual Studio Graphics Diagnostics
• Visual Studio Graphics Analyzer (VSGA)
A dedicated space for analyzing graphics frames
• Shader Edit & Apply
View impact of shader code changes without re-running the app
• Full support for DirectX12
Productivity (Diagnostics)
16. Native Memory Profiler
• Monitor live memory consumption and take heap snapshots during a d
ebugging session inside Visual Studio.
• View heap contents with C++ types, values, and call stack for each allocation (valu
es are shown only during a break point).
• Diff two snapshots to identify potential leaks.
• Navigate directly to source code from the allocations of interest.
• In-line data tips that show line by line memory performance and link to
source
• See how much memory is being consumed between break points.
• Easily navigate between source code and heap snapshots.
Productivity (Diagnostics)
17. Inspect instance values and their allocation call st
• Memory Performance Data
Tips
Take heap snapshots and view C++ object type
See how much memory is consumed between two breakpoin
Productivity (Diagnostics)
Native Memory Profiler
• Real-time heap analysis
18. IDE
• Refactoring for C++
• Rename
• Extract Method (VS Extension)
• Implement Pure Virtuals
• Create Declaration/Definition
• Move Function Definition
• Convert to Raw-String Literal
• Single-File Browsing and IntelliSense Support
• Universal App
• Faster, Improved Database Buildup
• Simplified QuickInfo for Template Deduction
• Auto-PCH (VS Extension)
Productivity
Build Improvements
• Faster linker when performing full linking
• Improvements in Compiler for template processing
and diagnostics
Diagnostics
• GPU Usage Tool (VS2013 Update 4)
• Visual Studio Graphics Analyzer
• Shader Edit & Apply
• Full support for DirectX12
• Native Memory Profiler
22. // Non-throwing functions may be declared noexcept
void f() noexcept;
void g();
// Can test whether a function is declared noexcept
bool const is_f_noexcept = noexcept(f());
bool const is_g_noexcept = noexcept(g());
//Can conditionally make a function noexcept
void h() noexcept(f);
template <typename F>
void call(F&& lambda) noexcept(lambda());
// If you violate a noexcept specification, std::terminate is called deterministically
noexcept
23. namespace foo
{
inline namespace bar
{
void print() { /* ... */ }
}
}
// Names in foo::bar are used without inline namespace name:
foo::print();
// Name is decorated with inline namespace name:
?print@bar@foo@@YAXXZ (void __cdecl foo::bar::print(void))
Inline Namespaces
24. void f()
{
// Every thread will get its own 'state' variable
thread_local int state = 0;
}
Thread-Local Storage (thread_local)
27. // Literals may now be specified in binary
uint16_t const hex_mask = 0xf0f0;
uint16_t const bin_mask = 0b1111000011110000;
// The ' may now be used as a digit separator
uint32_t const max_value = 4'294'967'295;
uint32_t const max_value = 0xff'ff'ff'ff;
uint16_t const bin_mask = 0b1111'0000'1111'0000;
uint16_t const bin_mask = 0b111'100'001'111'000'0;
uint16_t const bin_mask = 0b1'1'1'1'0'0'0'0'1'1'1'1'0'0'0'0;
Binary Literals and Digit Separators
28. int main()
{
std::cout << __func__ << 'n'; // main
std::cout << __FUNCTION__ << 'n'; // main
}
template <typename T>
void f(T const& s)
{
std::cout << __func__ << 'n'; // f
std::cout << __FUNCTION__ << 'n'; // f
}
__func__
29. // Can inspect alignment of things using alignof
size_t const alignment_of_uint16_t = alignof(uint16_t); // 4
size_t const alignment_of_m256 = alignof(__m256 ); // 32
// Can align objects to a specified alignment
alignas(alignof(32)) unsigned char buffer[32];
Alignment: alignof and alignas
30. char a = 'x';
char b = '☃'; // Wrong
char c = '🍸'; // Wrong
char16_t d = u'x';
char16_t e = u'☃';
char16_t f = u'🍸'; // Wrong
char32_t g = U'x';
char32_t h = U'☃';
char32_t i = U'🍸';
char a = 'u0078';
char b = 'u2603'; // Wrong
char c = 'U0001F378'; // Wrong
char16_t d = u'u0078';
char16_t e = u'u2603';
char16_t f = u'U0001F378'; // Wrong
char32_t g = U'U00000078';
char32_t h = U'U00002603';
char32_t i = U'U0001F378';
Unicode Character Literals
32. std::string a = u8"Hello, u2603!";
std::string b = u8"Hello, ☃!";
std::u16string c = u"Hello, u2603!";
std::u16string d = u"Hello, ☃!";
std::u32string e = U"Hello, u2603!";
std::u32string f = U"Hello, ☃!";
Unicode std::string Specializations
33. // Return types can be automatically deduced:
auto get_value() { return 10; }
// ...This is especially useful for templates:
template <typename T, typename U>
auto multiply(T&& multiplier, U&& multiplicand)
{
return multiplier * multiplicand;
}
Return Type Deduction
34. // Your entire program in C++17:
auto auto(auto) { auto; }
A Brief Interlude: A Preview of C++ 17
41. constexpr size_t fibonacci(size_t const n)
{
return n == 0 ? 0
: n == 1 ? 1
: fibonacci(n - 1) + fibonacci(n - 2);
}
char buffer[fibonacci(10)]; // buffer has 55 elements
constexpr
42. auto multiples_of(unsigned n)
{
unsigned current = n;
for (;;)
{
yield current;
current += n;
}
}
int main()
{
for (unsigned i : multiples_of(3))
{
printf("%d ", i);
if (i > 100) { break; }
}
}
// 3 6 9 12 15 18 21 24 27 30 33 36 39 42 ...
Resumable Functions (await)
43. size_t fibonacci(size_t const n)
{
return n == 0 ? 0
: n == 1 ? 1
: fibonacci(n - 1) + fibonacci(n - 2);
}
char buffer[fibonacci(10)]; // buffer has 55 elements
Expression SFINAE
44. What’s still missing?
• Expression SFINAE to complete C++11
• Major refactor needed -> parse trees
• Significant progress in Update 1 – Partial Support
• Generalized Constexpr (C++14)
• LARGE
• NSDMIs for aggregates (C++14)
• small
• Variable templates (C++14)
• Available under an experimental switch in Update 1
• Two-phase lookup
• C99 Preprocessor
45. STL conformance for VS2015
• Everything but:
Status Std Paper Title
missing C++14 N3462
SFINAE-Friendly result_o
f
missing C++17 N4387
Improving pair And tupl
e
missing C++17 N4508 shared_mutex (Untimed)
46. Library updates
• Universal CRT
• From Windows 10 and up, CRT is an OS component
• Still supported down to XP
• No more breaking changes
• MFC updates:
• Dynamic Layout / Auto-resize for dialogs
• New libraries
• Parallel STL
• New version of Casablanca C++ REST SDK
• OSS and takes contributions
• WebSockets
• oAuth 1.0 and 2.0
• OSX/iOS support, Android, WP8.1, Windows 10 Universal
47. Introducing Clang / C2 Toolset
• Clang / C2 hooks up the Clang front-end to the MSVC backe
nd
• Why?
• use the same frontend to reduce overhead of bring cross-plat librari
es and code to Windows
• no compromises debugging
• link compatible with MSVC code (same libraries)
• Preview coming in Update
• No, we aren't going to stop investing in our existing front-en
d (c1/c1xx)
• we respect your investment in your existing code base
48. A quick note on C99 / C11
• We care about C.
• Our gap isn’t really that large in practice
• Tgmath.h
• Variable length arrays (optional in C11)
• Complex types
• Some other nits
• We’ll get this via Clang / C2
49. New for DirectX Devs
• DirectX12 support
• Shader Edit and
Apply
• Consecutive Capture
• Programmatic
Capture
• Dedicated UI for
Graphics Analysis
50. Productivity pt. 2: Build Throughput
credit: This is my
favorite xkcd.com strip
of all time
51. • Compiler
• Faster template processing
• PDB
• Reduced PDB generation time
• /Debug:fastlink
• Linker
• Incremental linking for static libraries
• Algorithmic improvements
• LTCG & PGO
• Fast LTCG
• PGO instrumented builds has lower overhead
• General algorithmic improvements
across tools
Build Throughput Improvements
958 595 57
71
(7%)
285
(48%)
39
(68%)
K INE C T SPO RT S RIV AL C H RO ME O GRE 3D
INCREMENTAL BUILD (SEC)
VS2013 VS2015
715 2417508
(71%)
1480
(61%)
O GRE 3D BING (ST AT IC LIB)
FULL BUILD (SEC)
VS2013 VS2015
55. C++
• Messenger
• Facebook
• Pandora Radio
• Instagram
• Minecraft
• Snapchat
• Spotify Music
• Du Speed Booster
• Twitter
• The Game of Life
• Super Bright LED FlashLight
• Soda Saga
• Skype – Free
• Whatsapp Messenger
• Clean Master
• Netflix
• Kik
• Crossy Road
• Clash of Clans
• Amazon Shopping
• Candy Crush e IM and Video Calls
• 8 Ball Pool
• Glass Tower
• Subway Surfers
• Pinterest
• Cooking Fever
• Zedge Ringtones and Wallpaper
• Word Academy
• Poshmark - Buy and Sell
• Candy Crush Saga
• Dragon Blaze
• Marvel Future Fight
• Emoji Keyboard
• DU Battery saver
• SoundCloud - Music and Radio
• Monopoly
• Twitter
• CM Security Antivirus
• Slots - Journey of Magic
• Yahoo Mail - Free Email App
• iHeart Radio - Radio and Music
• Temple Run 2
• Boom Beach
• Despicable me
• ebay
• Wish - shopping made fun
• Trivia Check
• Juice Jam
• Game of War - Fire Age
• TouchPal Keyboard
• Geometry Dash Lite
• Flow Free
• Bird Climb
• Coin Dozer
• Uber
• Google Earth
• Flow Free
• Bird Climb
• Coin Dozer
• Uber
• Google Earth
• Archery Master 3d
• Go Keyboard - Emoji
• ooVoo video call
• Inbox by Gmail
• Samsung Smart Switch Mobile
• Tango - Free video call and chat
• Earn to Die 2
• Fruit Ninja Free
• Farm Heroes Saga
• Wallapop
• Capital One Wallet
• Truck Driver 3d: offroad
• Solitare
• Plants vs Zombies
• Hidden Object - Marrinotes
• Tinder
• DropBox
• Hulu
• Extreme Car driving simulator
• The Sims 3
• Word Search
• Hidden Object - Marrinotes
• Tinder
• Hulu
• Extreme Car driving simulator
• Need for Speed Most Wanted
• Angry Birds
• Shazam
• MyRadar Weather Radar
• Vine
• Line: Free calls and messages
• Waze Social GPS Maps
• Google Translate
• Don't tap the white tile
• Panda Pop
• EA Sports UFC
• Flipagram
• Hill Climb Racing
• Tasty Tale - The Cooking Game
• Yelp
• Offer Up - Buy, sell
• CM Launcher - Boost, Secure
• Temple Run
• Empire and Allies
• Google Docs
• Tetris
• Battery Doctor
• Beats Music
• Walmart
• Surgery Doctor
• EA FrostBite
59. Android Development Features
• Supported versions
• 4.4 “KitKat”, API Level 19
• 5.0 “Lollipop”, API Level 21
• Emulator features include
• OpenGL ES 2.0
• Multi-touch gestures
• Advanced camera simulation
• WiFi network simulation
• Debug directly from Visual St
udio
• Integrated LogCat viewer
• Natvis debugger visualizations
• Externally built native activity a
pps
• Can attach to running APKs
• “Stripped” debugging to reduc
e deployment size
• Deploy, Debug directly from V
Studio. Emulator or devices.
60. iOS Development Features
• Supports versions 6, 7, and 8 • Debug directly from Visual St
udio
• Need a Mac connected depl
oy and debug on devices onl
y (no emulator)
61. Universal Windows Platform
Development
• Develop one app for all Wi
ndows 10 devices
• Apps automatically switch be
tween desktop, phone, tablet
, Xbox and Surface Hub confi
gurations to fit screen size a
nd input types
• Unified app store
• Design your UI in XAML with
WYSIWYG editor
• You can use C++, C#, VB, or
HTML/JavaScript
• Easily port Android and iOS
apps
62. Vectorization of control flow
• Vectorization of loops with if-then-else
void blackscholes(float* input, int *signArray, int n) {
for (int i = 0; i < n; i++) {
float InputX = input[i];
int sign;
if (InputX < 0.0f) {
InputX = -InputX;
sign = 1;
} else {
sign = 0;
}
input[i] = InputX;
signArray[i] = sign;
}
}
mask = InputX < 0.0f ? 0xFFFFFFFF : 0;
InputX = (mask & -InputX) | (~mask & InputX);
sign = (mask & 1) | (~mask & 0);
Optimized to branch-less code
300%+ speedup in
blackscholes benchmark
63. Better stall-forward-avoidance
• Writes to large structures followed by reads from substructure
s can lead to hardware stalls.
• New optimizations targeted at std::complex<float> and std::c
omplex<double>
• Improved code generation of VUNPCKLPD/VUNPCKLPS instru
ctions
• 40% speedup in Eigen quaternion multiplication
code
• 35% speedup in Eigen FFT code
65. Loop-if unswitching
• Improved code generation for loop-invariant control flow
for (int i = 0; i < 100; i++)
if (some_invariant_condition)
...
Source code:
if (some_invariant_condition)
for (int i = 0; i < 100; i++)
...
Optimized as if:
Hits often, especially when considering
inlining
66. Other code generation
improvements
• #pragma loop(ivdep)
• Better vectorization of STL constructs (range based for-loops, std
::vector)
• Vectorization under /O1 (optimize for size)
• Better codegen of std::min/std::max (200% improvement in runti
me)
• Better instruction emission for bit-test (more BT, BTC, BTR, BTS)
• Plus much more…
67. What’s next: Compiler features (conform
ance) in Updates
• No need to wait for major VS updates
• Features include:
• Safer C++
• Modules
• Await completed in Update 1 (to current proposal)
• Clang/C2
• No breaking changes by default
68. What’s next: IDE productivity and build-l
ab scenario
• More Refactorings
• VC ++ Scalability and Perf
• Build-time improvements
• Standalone Build tools
69. What’s next: Early thoughts!!
• Come talk to us about your Linux / IoT dev!
• E.g. Remote Linux debugging
• Come talk to us about what you want from VS Code for C++!
70. Resources
• VCBlog – best way to follow us
• http://blogs.msdn.com/b/vcblog/
• Channel 9 – Going Native
• https://channel9.msdn.com/Shows/C9-GoingNative
71. 감사합니다.
• MSDN Forum http://aka.ms/msdnforum
• TechNet Forum http://aka.ms/technetforum
• Ayman Shoukry: aymans@Microsoft.com
• Ulzii Luvsanbat: batul@Microsoft.com